Commit 36a15d7d authored by David Gibson's avatar David Gibson

idtree: Fix undefined behaviour (left shift of signed value)

~0 will be signed and negative on any 2s complement system, and
left shifting a negative value has undefined behaviour in C.
Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
parent fb33661a
......@@ -278,7 +278,7 @@ void *idtree_lookup(const struct idtree *idp, int id)
* present. If so, tain't one of ours!
*/
if (n + IDTREE_BITS < 31 &&
(id & ~(~0 << MAX_ID_SHIFT)) >> (n + IDTREE_BITS))
(id & ~(~0U << MAX_ID_SHIFT)) >> (n + IDTREE_BITS))
return NULL;
/* Mask off upper bits we don't use for the search. */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment