Commit 9a1875e6 authored by David S. Miller's avatar David S. Miller

[NET]: Fully fix the memory leaks in sys_accept().

Andi Kleen was right, fput() on sock->file will end up calling
sock_release() if necessary.  So here is the rest of his version
of the fix for these leaks.
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 2722971c
...@@ -1418,7 +1418,8 @@ asmlinkage long sys_accept(int fd, struct sockaddr __user *upeer_sockaddr, int _ ...@@ -1418,7 +1418,8 @@ asmlinkage long sys_accept(int fd, struct sockaddr __user *upeer_sockaddr, int _
newfd = sock_alloc_fd(&newfile); newfd = sock_alloc_fd(&newfile);
if (unlikely(newfd < 0)) { if (unlikely(newfd < 0)) {
err = newfd; err = newfd;
goto out_release; sock_release(newsock);
goto out_put;
} }
err = sock_attach_fd(newsock, newfile); err = sock_attach_fd(newsock, newfile);
...@@ -1457,8 +1458,6 @@ asmlinkage long sys_accept(int fd, struct sockaddr __user *upeer_sockaddr, int _ ...@@ -1457,8 +1458,6 @@ asmlinkage long sys_accept(int fd, struct sockaddr __user *upeer_sockaddr, int _
out_fd: out_fd:
fput(newfile); fput(newfile);
put_unused_fd(newfd); put_unused_fd(newfd);
out_release:
sock_release(newsock);
goto out_put; goto out_put;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment