]> granicus.if.org Git - php/commitdiff
Free last_used_encoding_name in RSHUTDOWN
authorNikita Popov <nikita.ppv@gmail.com>
Thu, 20 Jul 2017 16:09:05 +0000 (18:09 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Thu, 20 Jul 2017 16:12:04 +0000 (18:12 +0200)
efree() cannot be used in GSHUTDOWN

ext/mbstring/mbstring.c

index 44a8a1da4c5618b71fe7069c9053757fbd38165b..9674a8371a81662991eb3abebe1111ebdce17278 100644 (file)
@@ -1577,9 +1577,6 @@ static PHP_GSHUTDOWN_FUNCTION(mbstring)
 #if HAVE_MBREGEX
        php_mb_regex_globals_free(mbstring_globals->mb_regex_globals);
 #endif
-       if (mbstring_globals->last_used_encoding_name) {
-               efree(mbstring_globals->last_used_encoding_name);
-       }
 }
 /* }}} */
 
@@ -1723,6 +1720,11 @@ PHP_RSHUTDOWN_FUNCTION(mbstring)
        MBSTRG(http_input_identify_cookie) = NULL;
        MBSTRG(http_input_identify_string) = NULL;
 
+       if (MBSTRG(last_used_encoding_name)) {
+               efree(MBSTRG(last_used_encoding_name));
+               MBSTRG(last_used_encoding_name) = NULL;
+       }
+
        /*  clear overloaded function. */
        if (MBSTRG(func_overload)){
                p = &(mb_ovld[0]);