]> granicus.if.org Git - php/commitdiff
Fixed bug #72982 (Memory leak in zend_accel_blacklist_update_regexp() function)
authorXinchen Hui <laruence@gmail.com>
Thu, 1 Sep 2016 04:10:38 +0000 (12:10 +0800)
committerXinchen Hui <laruence@gmail.com>
Thu, 1 Sep 2016 04:10:38 +0000 (12:10 +0800)
NEWS
ext/opcache/zend_accelerator_blacklist.c

diff --git a/NEWS b/NEWS
index 2271967d477249f95b41fcb55b6dae6eb1abaf85..9d4b2ec60ab20e4c6f34d7ad2b7d15645ec8d6f1 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,10 @@ PHP                                                                        NEWS
 - mbstring:
   . Fixed bug #66797 (mb_substr only takes 32-bit signed integer). (cmb)
 
+- Opcache:
+  . Fixed bug #72982 (Memory leak in zend_accel_blacklist_update_regexp()
+    function). (Laruence)
+
 - SOAP:
   . Fixed bug #71711 (Soap Server Member variables reference bug). (Nikita)
   . Fixed bug #71996 (Using references in arrays doesn't work like expected).
index df6abe8519ef645bab855bd9a12ecce803b0a8a5..db61e1e9d39b68287db357eeb6f4183d76721700 100644 (file)
@@ -178,7 +178,9 @@ static void zend_accel_blacklist_update_regexp(zend_blacklist *blacklist)
                        it->next = NULL;
 
                        if ((it->re = pcre_compile(regexp, PCRE_NO_AUTO_CAPTURE, &pcre_error, &pcre_error_offset, 0)) == NULL) {
+                               free(it);
                                blacklist_report_regexp_error(pcre_error, pcre_error_offset);
+                               return;
                        }
                        /* prepare for the next iteration */
                        p = regexp + 2;