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.
This commit is contained in:
Florian Weimer 2014-02-25 14:56:10 +01:00
parent 80a56cc3ee
commit 4cbf380ce9
3 changed files with 7 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2014-02-25 Florian Weimer <fweimer@redhat.com>
[BZ #15347]
* misc/sys/select.h (__FD_MASK): Avoid signed integer overflow.
2014-02-25 Will Newton <will.newton@linaro.org> 2014-02-25 Will Newton <will.newton@linaro.org>
* sysdeps/arm/__longjmp.S: Include stap-probe.h. * sysdeps/arm/__longjmp.S: Include stap-probe.h.

2
NEWS
View File

@ -9,7 +9,7 @@ Version 2.20
* The following bugs are resolved with this release: * 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 * The am33 port, which had not worked for several years, has been removed
from ports. from ports.

View File

@ -58,7 +58,7 @@ typedef long int __fd_mask;
/* It's easier to assume 8-bit bytes than to get CHAR_BIT. */ /* It's easier to assume 8-bit bytes than to get CHAR_BIT. */
#define __NFDBITS (8 * (int) sizeof (__fd_mask)) #define __NFDBITS (8 * (int) sizeof (__fd_mask))
#define __FD_ELT(d) ((d) / __NFDBITS) #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. */ /* fd_set for select and pselect. */
typedef struct typedef struct