List:Commits« Previous MessageNext Message »
From:ahristov Date:July 9 2007 8:40pm
Subject:PHP mysqlnd svn commit: r689 - trunk/mysqlnd
View as plain text  
Author: ahristov
Date: 2007-07-09 22:40:31 +0200 (Mon, 09 Jul 2007)
New Revision: 689

Modified:
   trunk/mysqlnd/mysqlnd_result_meta.c
Log:
Fix crash


Modified: trunk/mysqlnd/mysqlnd_result_meta.c
===================================================================
--- trunk/mysqlnd/mysqlnd_result_meta.c	2007-07-09 18:11:28 UTC (rev 688)
+++ trunk/mysqlnd/mysqlnd_result_meta.c	2007-07-09 20:40:31 UTC (rev 689)
@@ -271,17 +271,31 @@
 		new_fields[i].root = pemalloc(orig_fields[i].root_len, persistent);
 		memcpy(new_fields[i].root, orig_fields[i].root, new_fields[i].root_len);
 
-		new_fields[i].name		= new_fields[i].root + (orig_fields[i].name - orig_fields[i].root);
-		new_fields[i].org_name	= new_fields[i].root + (orig_fields[i].org_name -
orig_fields[i].root);
-
-		new_fields[i].table		= new_fields[i].root + (orig_fields[i].table -
orig_fields[i].root);
-		new_fields[i].org_table	= new_fields[i].root + (orig_fields[i].org_table -
orig_fields[i].root);
-
-		new_fields[i].db		= new_fields[i].root + (orig_fields[i].db - orig_fields[i].root);
-		new_fields[i].catalog	= new_fields[i].root + (orig_fields[i].catalog -
orig_fields[i].root);
+		if (orig_fields[i].name) {
+			new_fields[i].name = new_fields[i].root +
+								 (orig_fields[i].name - orig_fields[i].root);
+		}
+		if (orig_fields[i].org_name) {
+			new_fields[i].org_name = new_fields[i].root +
+									 (orig_fields[i].org_name - orig_fields[i].root);
+		}
+		if (orig_fields[i].table) {
+			new_fields[i].table	= new_fields[i].root +
+								  (orig_fields[i].table - orig_fields[i].root);
+		}
+		if (orig_fields[i].org_table) {
+			new_fields[i].org_table	= new_fields[i].root +
+									  (orig_fields[i].org_table - orig_fields[i].root);
+		}
+		if (orig_fields[i].db) {
+			new_fields[i].db = new_fields[i].root + (orig_fields[i].db - orig_fields[i].root);
+		}
+		if (orig_fields[i].catalog) {
+			new_fields[i].catalog = new_fields[i].root + (orig_fields[i].catalog -
orig_fields[i].root);
+		}
 		/* def is not on the root, if allocated at all */
 		if (orig_fields[i].def) {
-			new_fields[i].def	= pemalloc(orig_fields[i].def_length + 1, persistent);
+			new_fields[i].def = pemalloc(orig_fields[i].def_length + 1, persistent);
 			/* copy the trailing \0 too */
 			memcpy(new_fields[i].def, orig_fields[i].def, orig_fields[i].def_length + 1);
 		}

Thread
PHP mysqlnd svn commit: r689 - trunk/mysqlndahristov9 Jul