diff --git a/NEWS b/NEWS index 73fb1691c6f..11530adb488 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,8 @@ PHP NEWS . Fixed bug GH-13922 (Fixed support for systems with sysconf(_SC_GETPW_R_SIZE_MAX) == -1). (Arnaud) . Fixed bug GH-14626 (Fix is_zend_ptr() for huge blocks). (Arnaud) + . Fixed bug GH-14590 (Memory leak in FPM test gh13563-conf-bool-env.phpt. + (nielsdos) - Phar: . Fixed bug GH-14603 (null string from zip entry). diff --git a/Zend/zend_ini_parser.y b/Zend/zend_ini_parser.y index 071fdeb13fb..352f2eb3eec 100644 --- a/Zend/zend_ini_parser.y +++ b/Zend/zend_ini_parser.y @@ -179,8 +179,10 @@ static void zend_ini_get_var(zval *result, zval *name, zval *fallback) if ((curval = zend_get_configuration_directive(Z_STR_P(name))) != NULL) { ZVAL_NEW_STR(result, zend_string_init(Z_STRVAL_P(curval), Z_STRLEN_P(curval), ZEND_SYSTEM_INI)); /* ..or if not found, try ENV */ - } else if ((envvar = zend_getenv(Z_STRVAL_P(name), Z_STRLEN_P(name))) != NULL || - (envvar = getenv(Z_STRVAL_P(name))) != NULL) { + } else if ((envvar = zend_getenv(Z_STRVAL_P(name), Z_STRLEN_P(name))) != NULL) { + ZVAL_NEW_STR(result, zend_string_init(envvar, strlen(envvar), ZEND_SYSTEM_INI)); + efree(envvar); + } else if ((envvar = getenv(Z_STRVAL_P(name))) != NULL) { ZVAL_NEW_STR(result, zend_string_init(envvar, strlen(envvar), ZEND_SYSTEM_INI)); /* ..or if not defined, try fallback value */ } else if (fallback) {