diff --git a/NEWS b/NEWS index b5a60d5c12c..9c44373d215 100644 --- a/NEWS +++ b/NEWS @@ -19,6 +19,7 @@ PHP NEWS child->ev_std(out|err)). (Jakub Zelenka) . Fixed bug #64539 (FPM status page: query_string not properly JSON encoded). (Jakub Zelenka) + . Fixed memory leak for invalid primary script file handle. (Jakub Zelenka) - Hash: . Fixed bug GH-11180 (hash_file() appears to be restricted to 3 arguments). diff --git a/sapi/fpm/fpm/fpm_main.c b/sapi/fpm/fpm/fpm_main.c index 64ef27dadeb..b91bb8d055d 100644 --- a/sapi/fpm/fpm/fpm_main.c +++ b/sapi/fpm/fpm/fpm_main.c @@ -1924,20 +1924,17 @@ consult the installation file that came with this distribution, or visit \n\ } } zend_catch { } zend_end_try(); - /* we want to serve more requests if this is fastcgi - * so cleanup and continue, request shutdown is - * handled later */ + /* We want to serve more requests if this is fastcgi so cleanup and continue, + * request shutdown is handled later. */ + } else { + fpm_request_executing(); - goto fastcgi_request_done; + /* Reset exit status from the previous execution */ + EG(exit_status) = 0; + + php_execute_script(&file_handle); } - fpm_request_executing(); - - /* Reset exit status from the previous execution */ - EG(exit_status) = 0; - - php_execute_script(&file_handle); - /* Without opcache, or the first time with opcache, the file handle will be placed * in the CG(open_files) list by open_file_for_scanning(). Starting from the second * request in opcache, the file handle won't be in the list and therefore won't be destroyed for us. */