Skip to content

Fix for integer overflow bug in binary search.#5

Open
dpsi wants to merge 1 commit intoschencoding:masterfrom
dpsi:integer-overflow
Open

Fix for integer overflow bug in binary search.#5
dpsi wants to merge 1 commit intoschencoding:masterfrom
dpsi:integer-overflow

Conversation

@dpsi
Copy link
Copy Markdown

@dpsi dpsi commented Mar 23, 2021

Performing arithmetic on 2 keys can lead to signed integer overflow/underflow in the binary search algorithm. The result can lead to keys not being found or being inserted in the wrong place. This bug was caught using UBSAN.

The masking of most significant bit in key generation routines should also be reconsidered:

return (((a<<32)^(b<<16)^(c)) & (0x7FFFFFFFFFFFFFFFLL));

return (((a<<32)^(b<<16)^(c)) & (0x7FFFFFFFFFFFFFFFLL));

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant