]> granicus.if.org Git - php/commitdiff
Fixed memory leaks
authorDmitry Stogov <dmitry@zend.com>
Fri, 28 Feb 2014 09:37:55 +0000 (13:37 +0400)
committerDmitry Stogov <dmitry@zend.com>
Fri, 28 Feb 2014 09:37:55 +0000 (13:37 +0400)
ext/pcre/php_pcre.c

index c27f3f7eb105ed6972ecf94695f1fa5034543c8f..0a62f6f0b297caa29a4db68f430b2e18977f8691 100644 (file)
@@ -96,6 +96,7 @@ static void php_free_pcre_cache(zval *data) /* {{{ */
        if ((void*)pce->tables) pefree((void*)pce->tables, 1);
        pefree(pce->locale, 1);
 #endif
+       pefree(pce, 1);
 }
 /* }}} */
 
@@ -1392,8 +1393,10 @@ static void preg_replace_impl(INTERNAL_FUNCTION_PARAMETERS, int is_callable_repl
                old_replace_count = replace_count;
                if ((result = php_replace_in_subject(regex, replace, subject, &result_len, limit_val, is_callable_replace, &replace_count TSRMLS_CC)) != NULL) {
                        if (!is_filter || replace_count > old_replace_count) {
+//??? TODO: reimpplement to avoid double reallocation
 //???                          RETVAL_STRINGL(result, result_len, 0);
                                RETVAL_STRINGL(result, result_len);
+                               efree(result);
                        } else {
                                efree(result);
                        }