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/mysqlnd | ahristov | 9 Jul |