Re: BUG in sys_socketpair

From: David Miller
Date: Tue Oct 30 2007 - 00:55:25 EST


From: Chuck Ebbert <cebbert@xxxxxxxxxx>
Date: Thu, 25 Oct 2007 14:44:52 -0400

> On 10/25/2007 10:11 AM, Rich Paul wrote:
> > 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.
> >
> >
> > --- net/socket.c.orig 2007-10-25 10:03:56.000000000 -0400
> > +++ net/socket.c 2007-10-25 10:04:00.000000000 -0400
> Should be "err = fd1" (spaces), otherwise looks good.
>
> Original did:
>
> err = sock_map_fd(sock1);
> if (err < 0)
> goto out_release_both;
> fd1 = err;

Thanks everyone, I'll commit the following both to 2.6.x GIT
and -stable.