Messages in this thread Patch in this message | | | Date | Thu, 25 Oct 2007 10:11:07 -0400 | From | Rich Paul <> | Subject | BUG in sys_socketpair |
| |
In 2.6.23, there seems to be a minor bug in sys_socketpair. When the calls to sock_alloc_fd fail, it aborts the routine, but it returns the variable err, which is not set in this case.
The result is a silent failure if you have too many files open and call socketpair.
Here is a simple UNTESTED patch (not even compiled) which should resolve the issue.
Regards, Rich
--- net/socket.c.orig 2007-10-25 10:03:56.000000000 -0400 +++ net/socket.c 2007-10-25 10:04:00.000000000 -0400 @@ -1245,11 +1245,14 @@ 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; - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |