Pantek Library
Hosting Provided By
CybrHost
High Speed Hosting

PHP mysqlnd svn commit: r481 - trunk/mysqlnd

From: <ahristov(at)mysql.com>
Date: Mon Jun 25 2007 - 13:35:09 EDT


Author: ahristov
Date: 2007-06-25 19:35:08 +0200 (Mon, 25 Jun 2007) New Revision: 481

Modified:

   trunk/mysqlnd/mysqlnd_loaddata.c
Log:
Fix leaks

Modified: trunk/mysqlnd/mysqlnd_loaddata.c


  • trunk/mysqlnd/mysqlnd_loaddata.c 2007-06-25 15:46:29 UTC (rev 480) +++ trunk/mysqlnd/mysqlnd_loaddata.c 2007-06-25 17:35:08 UTC (rev 481)
    @@ -129,7 +129,7 @@
    zval_ptr_dtor(&retval);
 			if (rc > 0) {
-				if (rc > buf_len) {
+				if (rc > buf_len || Z_STRLEN_P(*callback_args[1]) > buf_len) {
 					/* check buffer overflow */
 					strcpy(info->error_msg, "Read buffer too small");
 					info->error_no = MYSQLND_EE_READ;

@@ -137,8 +137,7 @@
} else { memcpy(buf, Z_STRVAL_P(*callback_args[1]), rc); } - } - if (rc < 0) { + } else if (rc < 0) { strncpy(info->error_msg, Z_STRVAL_P(*callback_args[3]), MYSQLND_ERRMSG_SIZE); info->error_no = MYSQLND_EE_READ; }
@@ -201,8 +200,7 @@
conn->infile.local_infile_end = mysqlnd_local_infile_end; conn->infile.userdata = NULL; if (free_callback == TRUE && conn->infile.callback) { - efree(Z_STRVAL_P(conn->infile.callback)); - FREE_ZVAL(conn->infile.callback); + zval_ptr_dtor(&conn->infile.callback); conn->infile.callback = NULL; }

 }
@@ -211,7 +209,11 @@

 /* {{{ mysqlnd_set_local_infile_handler */  PHPAPI void mysqlnd_set_local_infile_handler(MYSQLND * const conn, const char * const funcname)  {
-	ALLOC_ZVAL(conn->infile.callback);	
+	if (!conn->infile.callback) {
+		MAKE_STD_ZVAL(conn->infile.callback);
+	} else {
+		zval_dtor(conn->infile.callback);
+	}
 	ZVAL_STRING(conn->infile.callback, funcname, 1);
 }
 /* }}} */
-- 
MySQL Code Commits Mailing List
For list archives: 
http://lists.mysql.com/commits
To unsubscribe:    
http://lists.mysql.com/commits?unsub=lists@pantek.com
Received on Mon Jun 25 13:36:12 2007

This archive was generated by hypermail 2.1.8 : Mon Jun 25 2007 - 13:40:03 EDT


Contact Us  Legal Notices  Order Services Online 
Pantek Home  Privacy Policy  IT news  Site Map  Pantek Library