Message ID | 20211109001502.9152-1-eiichi.tsukata@nutanix.com (mailing list archive) |
---|---|
State | Accepted |
Commit | c7cd82b90599fa10915f41e3dd9098a77d0aa7b6 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net,v2] vsock: prevent unnecessary refcnt inc for nonblocking connect | expand |
Hello: This patch was applied to netdev/net.git (master) by David S. Miller <davem@davemloft.net>: On Tue, 9 Nov 2021 00:15:02 +0000 you wrote: > 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. > > [...] Here is the summary with links: - [net,v2] vsock: prevent unnecessary refcnt inc for nonblocking connect https://git.kernel.org/netdev/net/c/c7cd82b90599 You are awesome, thank you!
diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c index e2c0cfb334d2..fa8c1b623fa2 100644 --- a/net/vmw_vsock/af_vsock.c +++ b/net/vmw_vsock/af_vsock.c @@ -1322,6 +1322,8 @@ static int vsock_connect(struct socket *sock, struct sockaddr *addr, * non-blocking call. */ err = -EALREADY; + if (flags & O_NONBLOCK) + goto out; break; default: if ((sk->sk_state == TCP_LISTEN) ||