Skip to content

Commit f65046b

Browse files
committed
Fix shift UB in sint4korr()
1 parent 2276516 commit f65046b

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

ext/mysqlnd/mysqlnd_portability.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -191,10 +191,10 @@ typedef union {
191191
(((uint32_t) (zend_uchar) (A)[2]) << 16) |\
192192
(((uint32_t) (zend_uchar) (A)[1]) << 8) | \
193193
((uint32_t) (zend_uchar) (A)[0])))
194-
#define sint4korr(A) (int32_t) (((int32_t) ((zend_uchar) (A)[0])) +\
195-
(((int32_t) ((zend_uchar) (A)[1]) << 8)) +\
196-
(((int32_t) ((zend_uchar) (A)[2]) << 16)) +\
197-
(((int32_t) ((int16_t) (A)[3]) << 24)))
194+
#define sint4korr(A) (int32_t) (((uint32_t) ((A)[0])) +\
195+
(((uint32_t) ((A)[1]) << 8)) +\
196+
(((uint32_t) ((A)[2]) << 16)) +\
197+
(((uint32_t) ((A)[3]) << 24)))
198198

199199
#define sint8korr(A) (int64_t) uint8korr(A)
200200
#define uint2korr(A) (uint16_t) (((uint16_t) ((zend_uchar) (A)[0])) +\

0 commit comments

Comments
 (0)