Re: Some socket syscalls fail to return an error on badfile-descriptor# argument

From: Andrew Morton
Date: Thu Jun 01 2006 - 00:36:18 EST


On Thu, 01 Jun 2006 13:38:55 +1000
Tony Griffiths <tonyg@xxxxxxxx> wrote:

> diff -urpN ./net/socket.c.orig ./net/socket.c
> --- ./net/socket.c.orig 2006-06-01 10:28:30.000000000 +1000
> +++ ./net/socket.c 2006-06-01 10:34:09.000000000 +1000
> @@ -496,6 +496,8 @@ static struct socket *sockfd_lookup_ligh
> if (sock)
> return sock;
> fput_light(file, *fput_needed);
> + } else {
> + *err = -EBADF;
> }
> return NULL;
> }

Confused. That patch cannot make any difference to this function:

static struct socket *sockfd_lookup_light(int fd, int *err, int *fput_needed)
{
struct file *file;
struct socket *sock;

*err = -EBADF;
file = fget_light(fd, fput_needed);
if (file) {
sock = sock_from_file(file, err);
if (sock)
return sock;
fput_light(file, *fput_needed);
}
return NULL;
}


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/