diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2019-06-19 12:47:56 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2019-06-19 15:09:00 +0200 |
commit | 3d4298697b41231690f93590e99f599b964f6a0d (patch) | |
tree | 1f1352e4fe704d8de544d795ef16e923afc06d8c /Zend | |
parent | 11f30d67ea058554cb6d16fb67c7708070f78d47 (diff) | |
download | php-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.c | 2 | ||||
-rw-r--r-- | Zend/zend_compile.h | 2 | ||||
-rw-r--r-- | Zend/zend_gc.c | 12 |
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) \ |