1
0
mirror of https://github.com/php/php-src.git synced 2026-04-12 18:43:37 +02:00

Use persistent strings only for persistent connections

This commit is contained in:
Dmitry Stogov
2018-10-23 10:43:58 +03:00
parent 149e6aaa99
commit 0459640fcd

View File

@@ -1810,10 +1810,17 @@ MYSQLND_METHOD(mysqlnd_conn_data, set_client_option_2d)(MYSQLND_CONN_DATA * cons
DBG_INF_FMT("Adding [%s][%s]", key, value);
{
zval attrz;
zend_string *str = zend_string_init(key, strlen(key), 1);
GC_MAKE_PERSISTENT_LOCAL(str);
ZVAL_NEW_STR(&attrz, zend_string_init(value, strlen(value), conn->persistent));
GC_MAKE_PERSISTENT_LOCAL(Z_COUNTED(attrz));
zend_string *str;
if (conn->persistent) {
str = zend_string_init(key, strlen(key), 1);
GC_MAKE_PERSISTENT_LOCAL(str);
ZVAL_NEW_STR(&attrz, zend_string_init(value, strlen(value), 1));
GC_MAKE_PERSISTENT_LOCAL(Z_COUNTED(attrz));
} else {
str = zend_string_init(key, strlen(key), 0);
ZVAL_NEW_STR(&attrz, zend_string_init(value, strlen(value), 0));
}
zend_hash_update(conn->options->connect_attr, str, &attrz);
zend_string_release_ex(str, 1);
}