From 0459640fcdf1c35d2ab619c74b9e471d852154de Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Tue, 23 Oct 2018 10:43:58 +0300 Subject: [PATCH] Use persistent strings only for persistent connections --- ext/mysqlnd/mysqlnd_connection.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/ext/mysqlnd/mysqlnd_connection.c b/ext/mysqlnd/mysqlnd_connection.c index 9f8e1fb5b9..826b47d717 100644 --- a/ext/mysqlnd/mysqlnd_connection.c +++ b/ext/mysqlnd/mysqlnd_connection.c @@ -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); } -- 2.49.0