summaryrefslogtreecommitdiff
path: root/ext/mysqlnd/mysqlnd_result_meta.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/mysqlnd/mysqlnd_result_meta.c')
-rw-r--r--ext/mysqlnd/mysqlnd_result_meta.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/ext/mysqlnd/mysqlnd_result_meta.c b/ext/mysqlnd/mysqlnd_result_meta.c
index 088f52c454..c3906ed8a6 100644
--- a/ext/mysqlnd/mysqlnd_result_meta.c
+++ b/ext/mysqlnd/mysqlnd_result_meta.c
@@ -33,7 +33,9 @@ static void
php_mysqlnd_free_field_metadata(MYSQLND_FIELD *meta, zend_bool persistent TSRMLS_DC)
{
if (meta) {
- STR_RELEASE(meta->def);
+ if (meta->def) {
+ STR_RELEASE(meta->def);
+ }
STR_RELEASE(meta->name);
STR_RELEASE(meta->org_name);
STR_RELEASE(meta->table);
@@ -262,7 +264,9 @@ MYSQLND_METHOD(mysqlnd_res_meta, clone_metadata)(const MYSQLND_RES_METADATA * co
new_fields[i].org_table = STR_DUP(orig_fields[i].org_table, persistent);
new_fields[i].db = STR_DUP(orig_fields[i].db, persistent);
new_fields[i].catalog = STR_DUP(orig_fields[i].catalog, persistent);
- new_fields[i].def = STR_DUP(orig_fields[i].def, persistent);
+ if (orig_fields[i].def) {
+ new_fields[i].def = STR_DUP(orig_fields[i].def, persistent);
+ }
}
new_meta->current_field = 0;
new_meta->field_count = meta->field_count;