summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Pauli <jpauli@php.net>2015-02-20 13:38:35 +0100
committerStanislav Malyshev <stas@php.net>2015-03-08 23:40:55 -0700
commit7684d72df8a55f9c23e80091c89818d870d7a108 (patch)
treeb5a943e58f3b095498556d1d2c7fce97e07370fd
parentdcc031470a4665ce5753dcbdcbb6f1e47bce0966 (diff)
downloadphp-git-7684d72df8a55f9c23e80091c89818d870d7a108.tar.gz
Fix #63486
-rw-r--r--ext/mysqli/php_mysqli_structs.h1
-rw-r--r--ext/mysqli/tests/bug63486.phpt55
2 files changed, 56 insertions, 0 deletions
diff --git a/ext/mysqli/php_mysqli_structs.h b/ext/mysqli/php_mysqli_structs.h
index d061bfb21a..e6dafea58c 100644
--- a/ext/mysqli/php_mysqli_structs.h
+++ b/ext/mysqli/php_mysqli_structs.h
@@ -313,6 +313,7 @@ extern PHPAPI zend_class_entry *spl_ce_RuntimeException;
mysqli_object *intern = (mysqli_object *)zend_object_store_get_object(*(__id) TSRMLS_CC);\
efree(intern->ptr); \
intern->ptr = NULL; \
+ ZVAL_NULL(*__id); \
}
diff --git a/ext/mysqli/tests/bug63486.phpt b/ext/mysqli/tests/bug63486.phpt
new file mode 100644
index 0000000000..72b8663e43
--- /dev/null
+++ b/ext/mysqli/tests/bug63486.phpt
@@ -0,0 +1,55 @@
+--TEST--
+mysqli_free_resource() - resets the zval to NULL
+--SKIPIF--
+<?php
+ require_once('skipif.inc');
+ require_once('skipifemb.inc');
+ require_once('skipifconnectfailure.inc');
+?>
+--FILE--
+<?php
+ require('connect.inc');
+ if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) {
+ printf("[001] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
+ die();
+ }
+
+ if (!($res = mysqli_query($link, "SELECT 1"))) {
+ printf("[002] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
+ die();
+ }
+
+ $row = mysqli_fetch_row($res);
+ var_dump($row);
+ var_dump($res);
+
+ mysqli_free_result($res);
+
+ var_dump($row);
+ var_dump($res);
+?>
+--EXPECTF--
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+object(mysqli_result)#3 (5) {
+ ["current_field"]=>
+ int(0)
+ ["field_count"]=>
+ int(1)
+ ["lengths"]=>
+ array(1) {
+ [0]=>
+ int(1)
+ }
+ ["num_rows"]=>
+ int(1)
+ ["type"]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+NULL