From: David Miller Date: Tue, 13 Nov 2007 08:02:56 +0000 (-0800) Subject: Fix error returns in sys_socketpair() X-Git-Tag: v2.6.22.14~17 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=2c41b3c3f54193a93284ca314784d1c6da39ecdc;p=karo-tx-linux.git Fix error returns in sys_socketpair() patch bf3c23d171e35e6e168074a1514b0acd59cfd81a in mainline. [NET]: Fix error reporting in sys_socketpair(). If either of the two sock_alloc_fd() calls fail, we forget to update 'err' and thus we'll erroneously return zero in these cases. Based upon a report and patch from Rich Paul, and commentary from Chuck Ebbert. Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- diff --git a/net/socket.c b/net/socket.c index 48bd793ecc1c..8211578517b3 100644 --- a/net/socket.c +++ b/net/socket.c @@ -1246,11 +1246,14 @@ asmlinkage long sys_socketpair(int family, int type, int protocol, goto out_release_both; fd1 = sock_alloc_fd(&newfile1); - if (unlikely(fd1 < 0)) + if (unlikely(fd1 < 0)) { + err = fd1; goto out_release_both; + } fd2 = sock_alloc_fd(&newfile2); if (unlikely(fd2 < 0)) { + err = fd2; put_filp(newfile1); put_unused_fd(fd1); goto out_release_both;