From bdc4b02985e5d50301c554cb58b7f0ad24b1f68b Mon Sep 17 00:00:00 2001 From: Benjamin Peterson Date: Fri, 14 Mar 2014 20:15:29 -0500 Subject: [PATCH] cast negative numbers to size_t before shifting them (#20929) --- Include/objimpl.h | 2 +- Misc/NEWS | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Include/objimpl.h b/Include/objimpl.h index 9a27ec384f9..3f21b70e074 100644 --- a/Include/objimpl.h +++ b/Include/objimpl.h @@ -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) diff --git a/Misc/NEWS b/Misc/NEWS index 91c669382ce..dd5d7da83b8 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -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.