# HG changeset patch # Parent 48d622437f8384bcb9e41056f243cd48b09afc89 Issue #1621: Don’t rely on left shift overflow producing negative value diff -r 48d622437f83 -r 44e7c61d8294 Objects/setobject.c --- a/Objects/setobject.c Thu Jul 14 06:55:09 2016 +0000 +++ b/Objects/setobject.c Thu Jul 14 12:34:50 2016 +0000 @@ -308,14 +308,12 @@ /* Find the smallest table size > minused. */ /* XXX speed-up with intrinsics */ - for (newsize = PySet_MINSIZE; - newsize <= minused && newsize > 0; - newsize <<= 1) - ; - if (newsize <= 0) { + if (minused > PY_SSIZE_T_MAX >> 1) { PyErr_NoMemory(); return -1; } + for (newsize = PySet_MINSIZE; newsize <= minused; newsize <<= 1) + ; /* Get space for a new table. */ oldtable = so->table;