Skip to content

Commit 7e03b79

Browse files
Etsukatagregkh
authored andcommitted
vsock: prevent unnecessary refcnt inc for nonblocking connect
[ Upstream commit c7cd82b ] Currently vosck_connect() increments sock refcount for nonblocking socket each time it's called, which can lead to memory leak if it's called multiple times because connect timeout function decrements sock refcount only once. Fixes it by making vsock_connect() return -EALREADY immediately when sock state is already SS_CONNECTING. Fixes: d021c34 ("VSOCK: Introduce VM Sockets") Reviewed-by: Stefano Garzarella <[email protected]> Signed-off-by: Eiichi Tsukata <[email protected]> Signed-off-by: David S. Miller <[email protected]> Signed-off-by: Sasha Levin <[email protected]>
1 parent ad3d219 commit 7e03b79

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

net/vmw_vsock/af_vsock.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1279,6 +1279,8 @@ static int vsock_stream_connect(struct socket *sock, struct sockaddr *addr,
12791279
* non-blocking call.
12801280
*/
12811281
err = -EALREADY;
1282+
if (flags & O_NONBLOCK)
1283+
goto out;
12821284
break;
12831285
default:
12841286
if ((sk->sk_state == TCP_LISTEN) ||

0 commit comments

Comments
 (0)