PHP mysqlnd svn commit: r689 - trunk/mysqlnd
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);
}
--
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 Jul 9 16:40:38 2007
This archive was generated by hypermail 2.1.8
: Mon Jul 16 2007 - 05:11:26 EDT
|