diff options
author | Mark Wielaard <mjw@redhat.com> | 2015-04-28 13:56:15 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2015-04-28 13:56:16 +0200 |
commit | fb4041ae532fd21a82618c2be09898ea8979dec5 (patch) | |
tree | 50cfe5803f87379ecc36b3973a50a452a7ca2ec6 | |
parent | 3f2e21e9cf577b57552f16f9ce84d0237055c7ea (diff) | |
download | glibc-fb4041ae532fd21a82618c2be09898ea8979dec5.tar.gz glibc-fb4041ae532fd21a82618c2be09898ea8979dec5.tar.xz glibc-fb4041ae532fd21a82618c2be09898ea8979dec5.zip |
elf.h SHF_EXCLUDE signed int 31 bit shift triggers undefined behaviour.
Any use of SHF_EXCLUDE in code that tries to check it against sh_flags will trigger undefined behaviour because it is defined as a 31 bit shift against an signed integer. Fix by explicitly using an unsigned int.
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | elf/elf.h | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index 0e7a0a05b9..4b58951ab4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2015-04-28 Mark Wielaard <mjw@redhat.com> + + * elf/elf.h (SHF_EXCLUDE): Use unsigned 1 for shift. + 2015-04-27 David S. Miller <davem@davemloft.net> * sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data: Remove diff --git a/elf/elf.h b/elf/elf.h index 71492a24d6..39bafc225c 100644 --- a/elf/elf.h +++ b/elf/elf.h @@ -371,7 +371,7 @@ typedef struct #define SHF_MASKPROC 0xf0000000 /* Processor-specific */ #define SHF_ORDERED (1 << 30) /* Special ordering requirement (Solaris). */ -#define SHF_EXCLUDE (1 << 31) /* Section is excluded unless +#define SHF_EXCLUDE (1U << 31) /* Section is excluded unless referenced or allocated (Solaris).*/ /* Section group handling. */ |