Skip to content

Commit f4c96ff

Browse files
author
Julien Pauli
committed
Fix #63486
1 parent 9fb48ed commit f4c96ff

File tree

2 files changed

+56
-0
lines changed

2 files changed

+56
-0
lines changed

ext/mysqli/php_mysqli_structs.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,7 @@ extern PHPAPI zend_class_entry *spl_ce_RuntimeException;
313313
mysqli_object *intern = (mysqli_object *)zend_object_store_get_object(*(__id) TSRMLS_CC);\
314314
efree(intern->ptr); \
315315
intern->ptr = NULL; \
316+
ZVAL_NULL(*__id); \
316317
}
317318

318319

ext/mysqli/tests/bug63486.phpt

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
--TEST--
2+
mysqli_free_resource() - resets the zval to NULL
3+
--SKIPIF--
4+
<?php
5+
require_once('skipif.inc');
6+
require_once('skipifemb.inc');
7+
require_once('skipifconnectfailure.inc');
8+
?>
9+
--FILE--
10+
<?php
11+
require('connect.inc');
12+
if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) {
13+
printf("[001] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
14+
die();
15+
}
16+
17+
if (!($res = mysqli_query($link, "SELECT 1"))) {
18+
printf("[002] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
19+
die();
20+
}
21+
22+
$row = mysqli_fetch_row($res);
23+
var_dump($row);
24+
var_dump($res);
25+
26+
mysqli_free_result($res);
27+
28+
var_dump($row);
29+
var_dump($res);
30+
?>
31+
--EXPECTF--
32+
array(1) {
33+
[0]=>
34+
string(1) "1"
35+
}
36+
object(mysqli_result)#3 (5) {
37+
["current_field"]=>
38+
int(0)
39+
["field_count"]=>
40+
int(1)
41+
["lengths"]=>
42+
array(1) {
43+
[0]=>
44+
int(1)
45+
}
46+
["num_rows"]=>
47+
int(1)
48+
["type"]=>
49+
int(0)
50+
}
51+
array(1) {
52+
[0]=>
53+
string(1) "1"
54+
}
55+
NULL

0 commit comments

Comments
 (0)