From: Florian Weimer Date: Tue, 25 Feb 2014 13:56:10 +0000 (+0100) Subject: misc/sys/select.h (__FD_MASK): Avoid signed integer overflow. X-Git-Tag: glibc-2.20~833 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4cbf380ce948ca15a965a78f0c1a092cf5956792;p=thirdparty%2Fglibc.git misc/sys/select.h (__FD_MASK): Avoid signed integer overflow. Shifting into the sign position is currently supported as a GCC extension, but explicitly subjected to future changes. Computation in the unsigned type followed by a cast to the signed type is a GCC extension that will be available forever. --- diff --git a/ChangeLog b/ChangeLog index caa89170d73..0071571bceb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2014-02-25 Florian Weimer + + [BZ #15347] + * misc/sys/select.h (__FD_MASK): Avoid signed integer overflow. + 2014-02-25 Will Newton * sysdeps/arm/__longjmp.S: Include stap-probe.h. diff --git a/NEWS b/NEWS index 3698c404f0c..96966d75533 100644 --- a/NEWS +++ b/NEWS @@ -9,7 +9,7 @@ Version 2.20 * The following bugs are resolved with this release: - 15804, 15894, 16447, 16545, 16574, 16600, 16609, 16610, 16611. + 15347, 15804, 15894, 16447, 16545, 16574, 16600, 16609, 16610, 16611. * The am33 port, which had not worked for several years, has been removed from ports. diff --git a/misc/sys/select.h b/misc/sys/select.h index fd13bab41a4..941588d9c40 100644 --- a/misc/sys/select.h +++ b/misc/sys/select.h @@ -58,7 +58,7 @@ typedef long int __fd_mask; /* It's easier to assume 8-bit bytes than to get CHAR_BIT. */ #define __NFDBITS (8 * (int) sizeof (__fd_mask)) #define __FD_ELT(d) ((d) / __NFDBITS) -#define __FD_MASK(d) ((__fd_mask) 1 << ((d) % __NFDBITS)) +#define __FD_MASK(d) ((__fd_mask) (1UL << ((d) % __NFDBITS))) /* fd_set for select and pselect. */ typedef struct