This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix typing of the bit twiddling done in_dl_setup_stack_chk_guard.


From: Thomas Schwinge <thomas@codesourcery.com>
Date: Mon, 12 Mar 2012 23:42:28 +0100

> The same code exists in sysdeps/generic/dl-osinfo.h -- and the same
> reasoning applies there.

Thanks, I took care of this and handled the coding style issue
Roland mentioned as well.

--------------------
Fix another instance of the _dl_random masking bug, plus coding style.

	* sysdeps/generic/dl-osinfo.h (_dl_setup_stack_chk_guard): Fix
	masking out of the most significant byte of random value used.
	* sysdeps/unix/sysv/linux/dl-osinfo.h (_dl_setup_stack_chk_guard):
	Fix coding style in previous change.
---
 ChangeLog                           |    5 +++++
 sysdeps/generic/dl-osinfo.h         |    4 ++--
 sysdeps/unix/sysv/linux/dl-osinfo.h |    4 ++--
 3 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 2d9dd85..e9ea42a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2012-03-12  David S. Miller  <davem@davemloft.net>
 
+	* sysdeps/generic/dl-osinfo.h (_dl_setup_stack_chk_guard): Fix
+	masking out of the most significant byte of random value used.
+	* sysdeps/unix/sysv/linux/dl-osinfo.h (_dl_setup_stack_chk_guard):
+	Fix coding style in previous change.
+
 	* sysdeps/unix/sysv/linux/kernel-features.h
 	(__ASSUME_CLONE_THREAD_FLAGS): Set on sparc when 2.5.64 and later.
 	(__ASSUME_TGKILL): Set on sparc when 2.6.1 and later, simplify
diff --git a/sysdeps/generic/dl-osinfo.h b/sysdeps/generic/dl-osinfo.h
index 548fc46..983cd55 100644
--- a/sysdeps/generic/dl-osinfo.h
+++ b/sysdeps/generic/dl-osinfo.h
@@ -37,9 +37,9 @@ _dl_setup_stack_chk_guard (void *dl_random)
     {
       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
diff --git a/sysdeps/unix/sysv/linux/dl-osinfo.h b/sysdeps/unix/sysv/linux/dl-osinfo.h
index 1ff8a2f..d0f41a7 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 &= ~(uintptr_t)0xff;
+      ret.num &= ~(uintptr_t) 0xff;
 #elif BYTE_ORDER == BIG_ENDIAN
-      ret.num &= ~((uintptr_t)0xff << (8 * (sizeof (ret) - 1)));
+      ret.num &= ~((uintptr_t) 0xff << (8 * (sizeof (ret) - 1)));
 #else
 # error "BYTE_ORDER unknown"
 #endif
-- 
1.7.6.401.g6a319


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]