From cb9d617437084b4ebf02e50c0a82c5dd2582029a Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Sun, 11 Mar 2012 19:41:43 -0700 Subject: [PATCH] Fix typing of the bit twiddling done in _dl_setup_stack_chk_guard. * sysdeps/unix/sysv/linux/dl-osinfo.h (_dl_setup_stack_chk_guard): Fix masking out of the most significant byte of random value used. --- ChangeLog | 3 +++ sysdeps/unix/sysv/linux/dl-osinfo.h | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 85993dc..29b7c67 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2012-03-11 David S. Miller + * sysdeps/unix/sysv/linux/dl-osinfo.h (_dl_setup_stack_chk_guard): + Fix masking out of the most significant byte of random value used. + * sysdeps/sparc/fpu/libm-test-ulps: Update. 2012-03-10 Andreas Schwab diff --git a/sysdeps/unix/sysv/linux/dl-osinfo.h b/sysdeps/unix/sysv/linux/dl-osinfo.h index 780b20a..1ff8a2f 100644 --- a/sysdeps/unix/sysv/linux/dl-osinfo.h +++ b/sysdeps/unix/sysv/linux/dl-osinfo.h @@ -95,9 +95,9 @@ _dl_setup_stack_chk_guard (void *dl_random) directly and not use the kernel-provided data to seed a PRNG. */ memcpy (ret.bytes, dl_random, sizeof (ret)); #if BYTE_ORDER == LITTLE_ENDIAN - ret.num &= ~0xff; + ret.num &= ~(uintptr_t)0xff; #elif BYTE_ORDER == BIG_ENDIAN - ret.num &= ~(0xff << (8 * (sizeof (ret) - 1))); + ret.num &= ~((uintptr_t)0xff << (8 * (sizeof (ret) - 1))); #else # error "BYTE_ORDER unknown" #endif -- 2.7.4