]> git.baikalelectronics.ru Git - kernel.git/commit
vhost/vsock: fix reset orphans race with close timeout
authorStefan Hajnoczi <stefanha@redhat.com>
Thu, 6 Dec 2018 19:14:34 +0000 (19:14 +0000)
committerMichael S. Tsirkin <mst@redhat.com>
Thu, 6 Dec 2018 19:22:34 +0000 (14:22 -0500)
commit02eaf2d66059939932698c35e8f2253508d2f382
treec65567f936e34db07096b4003010c8ba64fe9022
parent63142541117bc9e194b2892788b5be93202860bf
vhost/vsock: fix reset orphans race with close timeout

If a local process has closed a connected socket and hasn't received a
RST packet yet, then the socket remains in the table until a timeout
expires.

When a vhost_vsock instance is released with the timeout still pending,
the socket is never freed because vhost_vsock has already set the
SOCK_DONE flag.

Check if the close timer is pending and let it close the socket.  This
prevents the race which can leak sockets.

Reported-by: Maximilian Riemensberger <riemensberger@cadami.net>
Cc: Graham Whaley <graham.whaley@gmail.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
drivers/vhost/vsock.c