summaryrefslogtreecommitdiff
path: root/ext/mysqli/mysqli.c
diff options
context:
space:
mode:
authorRemi Collet <remi@php.net>2014-02-27 08:49:33 +0100
committerRemi Collet <remi@php.net>2014-02-27 08:49:33 +0100
commit82e92c99a66c37f6cd672e3cf291325104221e43 (patch)
tree180c21107d2d01847f4b3182fd5b693598cb650d /ext/mysqli/mysqli.c
parentfd20278fa58f77879124783d3207a7fd6e059199 (diff)
parent33d372a45fee931a05fda7191e8548639852ca9c (diff)
downloadphp-git-82e92c99a66c37f6cd672e3cf291325104221e43.tar.gz
Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4: NEWS test for bug #66762 Fixed Bug #66762 Segfault in mysqli_stmt::bind_result() when link closed
Diffstat (limited to 'ext/mysqli/mysqli.c')
-rw-r--r--ext/mysqli/mysqli.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/ext/mysqli/mysqli.c b/ext/mysqli/mysqli.c
index 929f776a43..86de2ed919 100644
--- a/ext/mysqli/mysqli.c
+++ b/ext/mysqli/mysqli.c
@@ -176,8 +176,11 @@ void php_clear_stmt_bind(MY_STMT *stmt TSRMLS_DC)
php_free_stmt_bind_buffer(stmt->param, FETCH_SIMPLE);
/* Clean output bind */
php_free_stmt_bind_buffer(stmt->result, FETCH_RESULT);
-#endif
+ if (stmt->link_handle) {
+ zend_objects_store_del_ref_by_handle(stmt->link_handle TSRMLS_CC);
+ }
+#endif
if (stmt->query) {
efree(stmt->query);
}
@@ -1069,6 +1072,10 @@ PHP_FUNCTION(mysqli_stmt_construct)
efree(stmt);
RETURN_FALSE;
}
+#ifndef MYSQLI_USE_MYSQLND
+ stmt->link_handle = Z_OBJ_HANDLE(*mysql_link);
+ zend_objects_store_add_ref_by_handle(stmt->link_handle TSRMLS_CC);
+#endif
mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));
mysqli_resource->ptr = (void *)stmt;