diff options
Diffstat (limited to 'ext/mysqlnd')
| -rw-r--r-- | ext/mysqlnd/mysqlnd_result_meta.c | 8 | ||||
| -rw-r--r-- | ext/mysqlnd/mysqlnd_wireprotocol.c | 4 |
2 files changed, 7 insertions, 5 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; diff --git a/ext/mysqlnd/mysqlnd_wireprotocol.c b/ext/mysqlnd/mysqlnd_wireprotocol.c index 7931d6d0c6..8cdd712f0b 100644 --- a/ext/mysqlnd/mysqlnd_wireprotocol.c +++ b/ext/mysqlnd/mysqlnd_wireprotocol.c @@ -1328,9 +1328,7 @@ php_mysqlnd_rset_field_read(void * _packet, MYSQLND_CONN_DATA * conn TSRMLS_DC) DBG_INF_FMT("Def found, length %lu, persistent=%u", len, packet->persistent_alloc); meta->def = STR_INIT((char *)p, len, packet->persistent_alloc); p += len; - } else { - meta->def = STR_EMPTY_ALLOC(); - } + } DBG_INF_FMT("allocing root. persistent=%u", packet->persistent_alloc); |
