RE: Some socket syscalls fail to return an error on bad file-descriptor# argument

From: Hua Zhong
Date: Thu Jun 01 2006 - 00:36:19 EST


This has been fixed in 2.6.17.

> -----Original Message-----
> From: linux-kernel-owner@xxxxxxxxxxxxxxx
> [mailto:linux-kernel-owner@xxxxxxxxxxxxxxx] On Behalf Of Tony
> Griffiths
> Sent: Wednesday, May 31, 2006 8:39 PM
> To: linux-kernel@xxxxxxxxxxxxxxx
> Subject: Some socket syscalls fail to return an error on bad
> file-descriptor# argument
>
> Description:
>
> The sockfd_lookup_light() function does not set the return
> error status on a particular failure mode when the passed-in
> fd# is erroneous.
>
> Environment:
>
> 2.6.16 kernel with the -mm2 patch-set applied. Linux 2.6.17
> kernels are also affected. Without the fix, a number of
> tests in LTP fail! Any program calling one of the syscalls
> listed below with a bad fd# will not get an error return
> indicating that the syscall failed.
>
> Fix:
>
> The attached patch correctly sets *err = -EBADF if the
> attempt to map the fd# to a file pointer returns NULL. The
> following syscalls are
> affected-
>
> bind()
> listen()
> accept()
> connect()
> getsockname()
> getpeername()
> setsockopt()
> setsockopt()
> shutdown()
> sendmsg()
> recvmsg()
>
>
>
>

-
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/