com php-src: Fixed memory leak: ext/mysqlnd/mysqlnd_ps.c ext/pdo_mysql/mysql_statement.c

From: Date: Fri, 20 Jun 2014 05:27:56 +0000
Subject: com php-src: Fixed memory leak: ext/mysqlnd/mysqlnd_ps.c ext/pdo_mysql/mysql_statement.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-78994@lists.php.net to get a copy of this message
Commit: d632870e4dfe506e21ddd4275351e7244060c942 Author: Xinchen Hui <laruence@php.net> Fri, 20 Jun 2014 13:27:56 +0800 Parents: e091a91f4337f79c4314b18706dfd277ce1c01fc Branches: phpng Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=d632870e4dfe506e21ddd4275351e7244060c942 Log: Fixed memory leak Changed paths: M ext/mysqlnd/mysqlnd_ps.c M ext/pdo_mysql/mysql_statement.c Diff: diff --git a/ext/mysqlnd/mysqlnd_ps.c b/ext/mysqlnd/mysqlnd_ps.c index b638863..3885733 100644 --- a/ext/mysqlnd/mysqlnd_ps.c +++ b/ext/mysqlnd/mysqlnd_ps.c @@ -650,7 +650,7 @@ MYSQLND_METHOD(mysqlnd_stmt, execute)(MYSQLND_STMT * const s TSRMLS_DC) if (stmt->result_bind[i].bound == TRUE) { zval *result = &stmt->result_bind[i].zv; ZVAL_DEREF(result); - zval_copy_ctor(result); + Z_TRY_ADDREF_P(result); } } } @@ -809,7 +809,7 @@ mysqlnd_stmt_fetch_row_buffered(MYSQLND_RES * result, void * param, unsigned int ZVAL_COPY_VALUE(result, &current_row[i]); #ifndef WE_DONT_COPY_IN_BUFFERED_AND_UNBUFFERED_BECAUSEOF_IS_REF - zval_copy_ctor(result); + Z_TRY_ADDREF_P(result); #endif } else { ZVAL_NULL(result); @@ -2031,7 +2031,7 @@ mysqlnd_stmt_separate_result_bind(MYSQLND_STMT * const s TSRMLS_DC) */ if (Z_REFCOUNTED(stmt->result_bind[i].zv) && Z_REFCOUNT(stmt->result_bind[i].zv) > 1) { #ifdef WE_DONT_COPY_IN_BUFFERED_AND_UNBUFFERED_BECAUSEOF_IS_REF - zval_copy_ctor(&stmt->result_bind[i].zv); + Z_TRY_ADDREF_P(&stmt->result_bind[i].zv); #endif zval_ptr_dtor(&stmt->result_bind[i].zv); } else { @@ -2041,7 +2041,7 @@ mysqlnd_stmt_separate_result_bind(MYSQLND_STMT * const s TSRMLS_DC) which the user has lost reference. */ #ifdef WE_DONT_COPY_IN_BUFFERED_AND_UNBUFFERED_BECAUSEOF_IS_REF - ZVAL_NULL(&stmt->result_bind[i].zv); + //??? ZVAL_NULL(&stmt->result_bind[i].zv); #endif zval_ptr_dtor(&stmt->result_bind[i].zv); } @@ -2086,7 +2086,7 @@ mysqlnd_stmt_separate_one_result_bind(MYSQLND_STMT * const s, unsigned int param */ if (Z_REFCOUNTED(stmt->result_bind[param_no].zv) && Z_REFCOUNT(stmt->result_bind[param_no].zv) > 1) { #ifdef WE_DONT_COPY_IN_BUFFERED_AND_UNBUFFERED_BECAUSEOF_IS_REF - zval_copy_ctor(&stmt->result_bind[param_no].zv); + Z_TRY_ADDREF_P(&stmt->result_bind[param_no].zv); #endif zval_ptr_dtor(&stmt->result_bind[param_no].zv); } else { @@ -2096,7 +2096,7 @@ mysqlnd_stmt_separate_one_result_bind(MYSQLND_STMT * const s, unsigned int param which the user has lost reference. */ #ifdef WE_DONT_COPY_IN_BUFFERED_AND_UNBUFFERED_BECAUSEOF_IS_REF - ZVAL_NULL(&stmt->result_bind[param_no].zv); + //???ZVAL_NULL(&stmt->result_bind[param_no].zv); #endif zval_ptr_dtor(&stmt->result_bind[param_no].zv); } diff --git a/ext/pdo_mysql/mysql_statement.c b/ext/pdo_mysql/mysql_statement.c index 2c0fc85..29f608e 100644 --- a/ext/pdo_mysql/mysql_statement.c +++ b/ext/pdo_mysql/mysql_statement.c @@ -746,7 +746,7 @@ static int pdo_mysql_stmt_get_col(pdo_stmt_t *stmt, int colno, char **ptr, unsig } #if PDO_USE_MYSQLND if (S->stmt) { - Z_TRY_ADDREF(S->stmt->data->result_bind[colno].zv); + //??? Z_TRY_ADDREF(S->stmt->data->result_bind[colno].zv); *ptr = (char*)&S->stmt->data->result_bind[colno].zv; *len = sizeof(zval); PDO_DBG_RETURN(1);

« previous php.cvs (#78994) next »