Author: uwendel
Date: 2008-04-15 11:00:36 +0200 (Tue, 15 Apr 2008)
New Revision: 1455
Modified:
trunk/php5/ext/pdo_mysqlnd/mysql_statement.c
Log:
Fix leak in pdo_mysql_prepare_emulated.phpt/emulated PS: mysqlnd does allocate the pointer
S->current_data using malloc() and we have to free it using free().
Modified: trunk/php5/ext/pdo_mysqlnd/mysql_statement.c
===================================================================
--- trunk/php5/ext/pdo_mysqlnd/mysql_statement.c 2008-04-14 20:28:30 UTC (rev 1454)
+++ trunk/php5/ext/pdo_mysqlnd/mysql_statement.c 2008-04-15 09:00:36 UTC (rev 1455)
@@ -102,8 +102,12 @@
mysql_free_result(res);
}
}
- }
+ }
#endif /* HAVE_MYSQL_NEXT_RESULT || PDO_USE_MYSQLND */
+#if PDO_USE_MYSQLND
+ if (!S->stmt && S->current_data)
+ free(S->current_data);
+#endif /* PDO_USE_MYSQLND */
efree(S);
PDO_DBG_RETURN(1);
@@ -588,6 +592,10 @@
strcpy(stmt->error_code, "HY000");
PDO_DBG_RETURN(0);
}
+#if PDO_USE_MYSQLND
+ if (!S->stmt && S->current_data)
+ free(S->current_data);
+#endif /* PDO_USE_MYSQLND */
if ((S->current_data = mysql_fetch_row(S->result)) == NULL) {
if (mysql_errno(S->H->server)) {
| Thread |
|---|
| • PHP mysqlnd svn commit: r1455 - trunk/php5/ext/pdo_mysqlnd | uwendel | 15 Apr |