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 netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html