]> granicus.if.org Git - python/commit
Fix the internals of our hash functions to used unsigned values during hash
authorGregory P. Smith <greg@krypto.org>
Tue, 11 Dec 2012 02:15:46 +0000 (18:15 -0800)
committerGregory P. Smith <greg@krypto.org>
Tue, 11 Dec 2012 02:15:46 +0000 (18:15 -0800)
commit27cbcd6241d787b5e99c6ed05ec8377051f397aa
tree02fe4460f5a52993a36a9aa575397f9001700ae1
parent90555d0f0d0b8e4ffbbb37ba12a8e43020ad1e98
Fix the internals of our hash functions to used unsigned values during hash
computation as the overflow behavior of signed integers is undefined.

In practice we require compiling everything with -fwrapv which forces overflow
to be defined as twos compliment but this keeps the code cleaner for checkers
or in the case where someone has compiled it without -fwrapv or their
compiler's equivalent.

Found by Clang trunk's Undefined Behavior Sanitizer (UBSan).

Cleanup only - no functionality or hash values change.
Include/pyport.h
Objects/bytesobject.c
Objects/setobject.c
Objects/tupleobject.c
Objects/unicodeobject.c