cast negative numbers to size_t before shifting them (#20929)

This commit is contained in:
Benjamin Peterson 2014-03-14 20:15:29 -05:00
parent 21b391c956
commit bdc4b02985
2 changed files with 3 additions and 1 deletions

View File

@ -265,7 +265,7 @@ extern PyGC_Head *_PyGC_generation0;
#define _PyGCHead_REFS(g) ((g)->gc.gc_refs >> _PyGC_REFS_SHIFT)
#define _PyGCHead_SET_REFS(g, v) do { \
(g)->gc.gc_refs = ((g)->gc.gc_refs & ~_PyGC_REFS_MASK) \
| (v << _PyGC_REFS_SHIFT); \
| (((size_t)(v)) << _PyGC_REFS_SHIFT); \
} while (0)
#define _PyGCHead_DECREF(g) ((g)->gc.gc_refs -= 1 << _PyGC_REFS_SHIFT)

View File

@ -8,6 +8,8 @@ What's New in Python 3.4.1?
Core and Builtins
-----------------
- Issue #20929: Add a type cast to avoid shifting a negative number.
- Issue #20731: Properly position in source code files even if they
are opened in text mode. Patch by Serhiy Storchaka.