diff options
author | Xinchen Hui <laruence@php.net> | 2013-11-08 15:06:36 +0800 |
---|---|---|
committer | Xinchen Hui <laruence@php.net> | 2013-11-08 15:06:36 +0800 |
commit | fd3fa9b53c6bc8f34c1c8bf75141f7ee74dc8db0 (patch) | |
tree | d2ac47ba7a3a7b368e02721a982bb681fb14bd20 | |
parent | 224dc52ea99f088597a7f5d1d09ddf68dca9dfb8 (diff) | |
download | php-git-fd3fa9b53c6bc8f34c1c8bf75141f7ee74dc8db0.tar.gz |
Fixed Bug #66043 (Segfault calling bind_param() on mysqli)
Although the doc said it is (unsigned int *), but it is ulong* in the
libmysql 5.0 's source codes
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | ext/mysqli/mysqli_api.c | 2 | ||||
-rw-r--r-- | ext/mysqli/tests/bug66043.phpt | 24 |
3 files changed, 29 insertions, 1 deletions
@@ -1,6 +1,10 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? 2013, PHP 5.4.23 + +- MySQLi: + . Fixed bug #66043 (Segfault calling bind_param() on mysqli). (Laruence) + - PDO . Fixed bug 65946 (sql_parser permanently converts values bound to strings) diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c index 2cda0aa903..6078a5e758 100644 --- a/ext/mysqli/mysqli_api.c +++ b/ext/mysqli/mysqli_api.c @@ -384,7 +384,7 @@ mysqli_stmt_bind_result_do_bind(MY_STMT *stmt, zval ***args, unsigned int argc, /* Changed to my_bool in MySQL 5.1. See MySQL Bug #16144 */ my_bool tmp; #else - uint tmp = 0; + ulong tmp = 0; #endif stmt->result.buf[ofs].type = IS_STRING; /* diff --git a/ext/mysqli/tests/bug66043.phpt b/ext/mysqli/tests/bug66043.phpt new file mode 100644 index 0000000000..d0e8b1c3d3 --- /dev/null +++ b/ext/mysqli/tests/bug66043.phpt @@ -0,0 +1,24 @@ +--TEST-- +Bug #66043 (Segfault calling bind_param() on mysqli) +--SKIPIF-- +<?php +require_once('skipif.inc'); +require_once("connect.inc"); +if ($IS_MYSQLND) { + die("skip libmysql only test"); +} +require_once('skipifconnectfailure.inc'); +?> +--FILE-- +<?php +require 'connect.inc'; +$db = new mysqli($host, $user, $passwd, 'mysql'); + +$stmt = $db->stmt_init(); +$stmt->prepare("SELECT User FROM user WHERE password=\"\""); +$stmt->execute(); +$stmt->bind_result($testArg); +echo "Okey"; +?> +--EXPECTF-- +Okey |