diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2019-06-19 14:27:13 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2019-06-19 15:09:00 +0200 |
commit | f65046b95143a2898d4cf2589219410844a8d20a (patch) | |
tree | 128b0e3f67c940538ab6949609f10135ecbf497f /ext/mysqlnd | |
parent | 22765160da028590aafc073cc2edbb088e28f436 (diff) | |
download | php-git-f65046b95143a2898d4cf2589219410844a8d20a.tar.gz |
Fix shift UB in sint4korr()
Diffstat (limited to 'ext/mysqlnd')
-rw-r--r-- | ext/mysqlnd/mysqlnd_portability.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/ext/mysqlnd/mysqlnd_portability.h b/ext/mysqlnd/mysqlnd_portability.h index 622e31dcd4..873f49b0cd 100644 --- a/ext/mysqlnd/mysqlnd_portability.h +++ b/ext/mysqlnd/mysqlnd_portability.h @@ -191,10 +191,10 @@ typedef union { (((uint32_t) (zend_uchar) (A)[2]) << 16) |\ (((uint32_t) (zend_uchar) (A)[1]) << 8) | \ ((uint32_t) (zend_uchar) (A)[0]))) -#define sint4korr(A) (int32_t) (((int32_t) ((zend_uchar) (A)[0])) +\ - (((int32_t) ((zend_uchar) (A)[1]) << 8)) +\ - (((int32_t) ((zend_uchar) (A)[2]) << 16)) +\ - (((int32_t) ((int16_t) (A)[3]) << 24))) +#define sint4korr(A) (int32_t) (((uint32_t) ((A)[0])) +\ + (((uint32_t) ((A)[1]) << 8)) +\ + (((uint32_t) ((A)[2]) << 16)) +\ + (((uint32_t) ((A)[3]) << 24))) #define sint8korr(A) (int64_t) uint8korr(A) #define uint2korr(A) (uint16_t) (((uint16_t) ((zend_uchar) (A)[0])) +\ |