summaryrefslogtreecommitdiff
path: root/Zend
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2019-06-19 12:47:56 +0200
committerNikita Popov <nikita.ppv@gmail.com>2019-06-19 15:09:00 +0200
commit3d4298697b41231690f93590e99f599b964f6a0d (patch)
tree1f1352e4fe704d8de544d795ef16e923afc06d8c /Zend
parent11f30d67ea058554cb6d16fb67c7708070f78d47 (diff)
downloadphp-git-3d4298697b41231690f93590e99f599b964f6a0d.tar.gz
Fix shift UB in constants
We were shifting out the top bit of a signed integer.
Diffstat (limited to 'Zend')
-rw-r--r--Zend/zend_alloc.c2
-rw-r--r--Zend/zend_compile.h2
-rw-r--r--Zend/zend_gc.c12
3 files changed, 8 insertions, 8 deletions
diff --git a/Zend/zend_alloc.c b/Zend/zend_alloc.c
index 9c081477d0..93660e1cdc 100644
--- a/Zend/zend_alloc.c
+++ b/Zend/zend_alloc.c
@@ -591,7 +591,7 @@ static zend_always_inline void zend_mm_bitset_reset_range(zend_mm_bitset *bitset
if (pos != end) {
/* reset bits from "bit" to ZEND_MM_BITSET_LEN-1 */
- tmp = ~((Z_L(1) << bit) - 1);
+ tmp = ~((Z_UL(1) << bit) - 1);
bitset[pos++] &= ~tmp;
while (pos != end) {
/* set all bits */
diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h
index b47d762a74..0ca688c5ff 100644
--- a/Zend/zend_compile.h
+++ b/Zend/zend_compile.h
@@ -516,7 +516,7 @@ struct _zend_execute_data {
#define ZEND_CALL_FAKE_CLOSURE (1 << 23)
#define ZEND_CALL_GENERATOR (1 << 24)
#define ZEND_CALL_DYNAMIC (1 << 25)
-#define ZEND_CALL_SEND_ARG_BY_REF (1 << 31)
+#define ZEND_CALL_SEND_ARG_BY_REF (1u << 31)
#define ZEND_CALL_NESTED_FUNCTION (ZEND_CALL_FUNCTION | ZEND_CALL_NESTED)
#define ZEND_CALL_NESTED_CODE (ZEND_CALL_CODE | ZEND_CALL_NESTED)
diff --git a/Zend/zend_gc.c b/Zend/zend_gc.c
index 7ed3078ed1..a5eb711f31 100644
--- a/Zend/zend_gc.c
+++ b/Zend/zend_gc.c
@@ -78,13 +78,13 @@
#endif
/* GC_INFO layout */
-#define GC_ADDRESS 0x0fffff
-#define GC_COLOR 0x300000
+#define GC_ADDRESS 0x0fffffu
+#define GC_COLOR 0x300000u
-#define GC_BLACK 0x000000 /* must be zero */
-#define GC_WHITE 0x100000
-#define GC_GREY 0x200000
-#define GC_PURPLE 0x300000
+#define GC_BLACK 0x000000u /* must be zero */
+#define GC_WHITE 0x100000u
+#define GC_GREY 0x200000u
+#define GC_PURPLE 0x300000u
/* GC_INFO access */
#define GC_REF_ADDRESS(ref) \