diff options
| -rw-r--r-- | ext/mysqli/mysqli.c | 2 | ||||
| -rw-r--r-- | ext/mysqli/mysqli_api.c | 11 |
2 files changed, 8 insertions, 5 deletions
diff --git a/ext/mysqli/mysqli.c b/ext/mysqli/mysqli.c index 011896050a..5e0a5ebc10 100644 --- a/ext/mysqli/mysqli.c +++ b/ext/mysqli/mysqli.c @@ -125,7 +125,7 @@ void php_clear_stmt_bind(MY_STMT *stmt) /* {{{ php_clear_mysql */ void php_clear_mysql(MY_MYSQL *mysql) { if (mysql->li_read) { - zval_dtor(mysql->li_read); + zval_ptr_dtor(&(mysql->li_read)); mysql->li_read = NULL; } } diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c index 378514834d..32b57ecf43 100644 --- a/ext/mysqli/mysqli_api.c +++ b/ext/mysqli/mysqli_api.c @@ -1170,7 +1170,7 @@ PHP_FUNCTION(mysqli_set_local_infile_default) MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID); if (mysql->li_read) { - zval_dtor(mysql->li_read); + zval_ptr_dtor(&(mysql->li_read)); mysql->li_read = NULL; } } @@ -1198,11 +1198,14 @@ PHP_FUNCTION(mysqli_set_local_infile_handler) efree(callback_name); RETURN_FALSE; } - efree(callback_name); /* save callback function */ - ALLOC_ZVAL(mysql->li_read); - ZVAL_STRING(mysql->li_read, callback_func->value.str.val, 1); + if (!mysql->li_read) { + MAKE_STD_ZVAL(mysql->li_read); + } else { + zval_dtor(mysql->li_read); + } + ZVAL_STRING(mysql->li_read, callback_name, 0); RETURN_TRUE; } |
