cvs: php-src /ext/pdo_mysql mysql_statement.c
| From: | Ilia Alshanetsky | Date: | Sat, 09 Jul 2005 04:21:16 +0000 |
| Subject: | cvs: php-src /ext/pdo_mysql mysql_statement.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-32837@lists.php.net to get a copy of this message | ||
iliaa Sat Jul 9 00:21:16 2005 EDT
Modified files:
/php-src/ext/pdo_mysql mysql_statement.c
Log:
Fixed memory leak
http://cvs.php.net/diff.php/php-src/ext/pdo_mysql/mysql_statement.c?r1=1.31&r2=1.32&ty=u
Index: php-src/ext/pdo_mysql/mysql_statement.c
diff -u php-src/ext/pdo_mysql/mysql_statement.c:1.31 php-src/ext/pdo_mysql/mysql_statement.c:1.32
--- php-src/ext/pdo_mysql/mysql_statement.c:1.31 Fri Jul 8 23:54:13 2005
+++ php-src/ext/pdo_mysql/mysql_statement.c Sat Jul 9 00:21:14 2005
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mysql_statement.c,v 1.31 2005/07/09 03:54:13 wez Exp $ */
+/* $Id: mysql_statement.c,v 1.32 2005/07/09 04:21:14 iliaa Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -96,8 +96,18 @@
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));