[PATCH] Avoid undefined behavior in __FD_MASK

Florian Weimer fweimer@redhat.com
Fri Apr 12 18:23:00 GMT 2013


On 04/11/2013 10:32 PM, Roland McGrath wrote:
>> __fd_mask
>> should really be an unsigned type, but changing that is more risky.
>
> That really is the right fix (and then your change is unnecessary).
> What risks do you imagine with the type change?

The fd_bits member used to be part of the public API in the 90s, and 
someone might point a long * variable to it.  There's also a comment:

/* The fd_set member is required to be an array of longs.  */
typedef long int __fd_mask;

If someone still has the discussion to Austin group issue bwg2001-005 
(which led to the removal of the fd_bits member), it might shed some 
light onto this.

But I'm probably overly conservative here.

-- 
Florian Weimer / Red Hat Product Security Team



More information about the Libc-alpha mailing list