Commits

gpshead  committed e47a547 Merge

1 << 31 is invalid for signed integers, fix it by making 1 unsigned.

Found by Clang trunk's Undefined-Behavior Sanitizer. [more to come]

  • Participants
  • Parent commits 561c401, cd10df8
  • Branches 3.3

Comments (0)

Files changed (1)

File Modules/_sre.c

             }
             else {
                 /* <CHARSET> <bitmap> (32 bits per code word) */
-                if (ch < 256 && (set[ch >> 5] & (1 << (ch & 31))))
+                if (ch < 256 && (set[ch >> 5] & (1u << (ch & 31))))
                     return ok;
                 set += 8;
             }
                     block = -1;
                 set += 64;
                 if (block >=0 &&
-                    (set[block*8 + ((ch & 255)>>5)] & (1 << (ch & 31))))
+                    (set[block*8 + ((ch & 255)>>5)] & (1u << (ch & 31))))
                     return ok;
                 set += count*8;
             }