Skip to content

Commit 2440482

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 c8234e6 commit 2440482

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
@@ -1322,6 +1322,8 @@ static int vsock_connect(struct socket *sock, struct sockaddr *addr,
13221322
* non-blocking call.
13231323
*/
13241324
err = -EALREADY;
1325+
if (flags & O_NONBLOCK)
1326+
goto out;
13251327
break;
13261328
default:
13271329
if ((sk->sk_state == TCP_LISTEN) ||

0 commit comments

Comments
 (0)