[PATCH] elf.h SHF_EXCLUDE signed int 31 bit shift triggers undefined behaviour.
Florian Weimer
fweimer@redhat.com
Wed Apr 22 09:18:00 GMT 2015
On 04/22/2015 10:14 AM, Florian Weimer wrote:
> On 04/21/2015 11:20 AM, Mark Wielaard wrote:
>> -#define SHF_EXCLUDE (1 << 31) /* Section is excluded unless
>> +#define SHF_EXCLUDE (1U << 31) /* Section is excluded unless
>
> I think the safer change is to use -0x80000000 as the value of the
> constant, without making it unsigned. Otherwise my previous objections
> apply.
I thought some more about this, and have changed my opinion completely.
Making the constant unsigned is less risky than making it negative
because of potential sign extension issues. It's the lesser of two evils.
The proposed patch is okay with me.
--
Florian Weimer / Red Hat Product Security
More information about the Libc-alpha
mailing list