]> granicus.if.org Git - php/commit
Fix off by 1 problem.
authorAndrey Hristov <andrey@php.net>
Mon, 12 Dec 2016 19:11:02 +0000 (21:11 +0200)
committerAndrey Hristov <andrey@php.net>
Mon, 12 Dec 2016 19:11:02 +0000 (21:11 +0200)
commite15c418c4c765d3a0c65a5ff15dcf37b1e556a66
tree4fe2cc86cff6ab792a5dd29d2fdda87b5fd88469
parent7a8774ade4383cd1c98d46e7e64f73f869a110e2
Fix off by 1 problem.

The problem was manifestated only with BIT columns and only when more than
one row was fetched. The problem was coming from the fact that in pre-7.0
times mysqlnd was using a no-copy optimization. This optimization kept the
strings (and also the BIT mask equivalents as strings) in the packet and the
zval referred to them. 7.0+ zvals cannot use no-copy and always copy. Because
of this the allocated memory for the packet was reduced by 1 by the person who
ported the driver, but the starting address of the bit area wasn't reduced.
Because of this the bit_area started at wrong address and the length decoded
wrong.
NEWS
ext/mysqlnd/mysqlnd_ps_codec.c
ext/mysqlnd/mysqlnd_wireprotocol.c