From: Ilia Alshanetsky Date: Sat, 9 Jul 2005 04:21:14 +0000 (+0000) Subject: Fixed memory leak X-Git-Tag: php-5.1.0b3~68 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ba66cac1cf1756da2434e8587f91af33d4d98d86;p=php Fixed memory leak --- diff --git a/ext/pdo_mysql/mysql_statement.c b/ext/pdo_mysql/mysql_statement.c index 5a6dd2fe76..3c5a4933c7 100755 --- a/ext/pdo_mysql/mysql_statement.c +++ b/ext/pdo_mysql/mysql_statement.c @@ -96,8 +96,18 @@ static int pdo_mysql_stmt_execute(pdo_stmt_t *stmt TSRMLS_DC) S->result = mysql_stmt_result_metadata(S->stmt); if (S->result) { S->fields = mysql_fetch_fields(S->result); - stmt->column_count = (int)mysql_num_fields(S->result); + if (S->bound_result) { + int i; + for (i = 0; i < stmt->column_count; i++) { + efree(S->bound_result[i].buffer); + } + efree(S->bound_result); + efree(S->out_null); + efree(S->out_length); + } + + stmt->column_count = (int)mysql_num_fields(S->result); S->bound_result = ecalloc(stmt->column_count, sizeof(MYSQL_BIND)); S->out_null = ecalloc(stmt->column_count, sizeof(my_bool)); S->out_length = ecalloc(stmt->column_count, sizeof(unsigned long));