List:Commits« Previous MessageNext Message »
From:uwendel Date:April 15 2008 9:00am
Subject:PHP mysqlnd svn commit: r1455 - trunk/php5/ext/pdo_mysqlnd
View as plain text  
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_mysqlnduwendel15 Apr