summaryrefslogtreecommitdiff
path: root/ext/mysqlnd/mysqlnd_wireprotocol.c
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2019-06-19 14:22:05 +0200
committerNikita Popov <nikita.ppv@gmail.com>2019-06-19 15:09:00 +0200
commit22765160da028590aafc073cc2edbb088e28f436 (patch)
tree000f9b820cc727faf88a6229ea08bb61569f73e6 /ext/mysqlnd/mysqlnd_wireprotocol.c
parent4ae87f4bf964146d8da1deb64cf1b668f1103891 (diff)
downloadphp-git-22765160da028590aafc073cc2edbb088e28f436.tar.gz
Fix incorrect shift in mysqlnd_wireprotocol
This one looks like a genuine bug: We're shifting a uint16_t by 16 bits. On x86 that likely results in no shift happening.
Diffstat (limited to 'ext/mysqlnd/mysqlnd_wireprotocol.c')
-rw-r--r--ext/mysqlnd/mysqlnd_wireprotocol.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/ext/mysqlnd/mysqlnd_wireprotocol.c b/ext/mysqlnd/mysqlnd_wireprotocol.c
index 6ef48a4a7d..609fd98309 100644
--- a/ext/mysqlnd/mysqlnd_wireprotocol.c
+++ b/ext/mysqlnd/mysqlnd_wireprotocol.c
@@ -420,7 +420,7 @@ php_mysqlnd_greet_read(MYSQLND_CONN_DATA * conn, void * _packet)
p--;
/* Additional 16 bits for server capabilities */
- packet->server_capabilities |= uint2korr(pad_start) << 16;
+ packet->server_capabilities |= (uint32_t) uint2korr(pad_start) << 16;
/* And a length of the server scramble in one byte */
packet->authentication_plugin_data.l = uint1korr(pad_start + 2);
if (packet->authentication_plugin_data.l > SCRAMBLE_LENGTH) {