summaryrefslogtreecommitdiff
path: root/ext/mysqli/mysqli.c
diff options
context:
space:
mode:
authorRemi Collet <remi@php.net>2014-02-27 08:50:07 +0100
committerRemi Collet <remi@php.net>2014-02-27 08:50:07 +0100
commitfa01db3466348004dc6b98696f458851830f6431 (patch)
tree65fa67a93dac14c0829108215364b201f676d98b /ext/mysqli/mysqli.c
parent42a43d45317ac93c2ba934486879a0bc418bc34d (diff)
parentcb0e6124d4999c3fb64c3aab36dbcd5541e3008a (diff)
downloadphp-git-fa01db3466348004dc6b98696f458851830f6431.tar.gz
Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5: NEWS 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 2a5a8c61ff..0cea68a33f 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);
}
@@ -1071,6 +1074,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;