diff options
Diffstat (limited to 'ext/mysqli/mysqli_api.c')
-rw-r--r-- | ext/mysqli/mysqli_api.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c index 8c8c3c32b5..1850facd4d 100644 --- a/ext/mysqli/mysqli_api.c +++ b/ext/mysqli/mysqli_api.c @@ -1457,7 +1457,7 @@ PHP_FUNCTION(mysqli_set_local_infile_handler) { MY_MYSQL *mysql; zval *mysql_link; - zval callback_name, *p_callback_name; + zval callback_name; zval *callback_func; if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Oz", &mysql_link, mysqli_link_class_entry, @@ -1467,7 +1467,7 @@ PHP_FUNCTION(mysqli_set_local_infile_handler) MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID); - if (UG(unicode)) { + if (UG(unicode) && Z_TYPE_P(callback_func) != IS_ARRAY && Z_TYPE_P(callback_func) != IS_OBJECT) { convert_to_string(callback_func); } @@ -1477,6 +1477,7 @@ PHP_FUNCTION(mysqli_set_local_infile_handler) zval_dtor(&callback_name); RETURN_FALSE; } + zval_dtor(&callback_name); /* save callback function */ if (!mysql->li_read) { @@ -1484,8 +1485,7 @@ PHP_FUNCTION(mysqli_set_local_infile_handler) } else { zval_dtor(mysql->li_read); } - p_callback_name = &callback_name; - ZVAL_ZVAL(mysql->li_read, p_callback_name, 0, 0); + ZVAL_ZVAL(mysql->li_read, callback_func, 1, 0); RETURN_TRUE; } |