]> www.infradead.org Git - users/jedix/linux-maple.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 21 Dec 2018 13:13:17 +0000 (14:13 +0100)
commit7e43eec4b4587716505fcf388879e4191331e6fa
treeda37c8619201638152a36fbb040cd733f4102b96
parentab9697222a1da17b6a4e909fab554b6ae5691789
vhost/vsock: fix reset orphans race with close timeout

[ Upstream commit c38f57da428b033f2721b611d84b1f40bde674a8 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/vhost/vsock.c