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));
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php