]> granicus.if.org Git - php/commitdiff
Fixed bug #50168 (FastCGI fails with wrong error on HEAD request to non-existant...
authorDmitry Stogov <dmitry@php.net>
Mon, 30 Nov 2009 14:43:22 +0000 (14:43 +0000)
committerDmitry Stogov <dmitry@php.net>
Mon, 30 Nov 2009 14:43:22 +0000 (14:43 +0000)
NEWS
sapi/cgi/cgi_main.c

diff --git a/NEWS b/NEWS
index 10ac56f4163d304569ccfe5a37b4ea75918431c9..b7686928478e1f9554c8b715e2a7db09a456408e 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,8 @@ PHP                                                                        NEWS
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 ?? Dec 2009, PHP 5.2.12RC4
 - Fixed bug #50266 (conflicting types for llabs). (Jani)
+- Fixed bug #50168 (FastCGI fails with wrong error on HEAD request to
+  non-existant file). (Dmitry)
 
 
 27 Nov 2009, PHP 5.2.12RC3
index dff71ec5d43fedc8b69d8f3b0db23e2abba8c112..797e97cf3d28cd025ee3251abc230d224a23c7b6 100644 (file)
@@ -1496,8 +1496,9 @@ int main(int argc, char *argv[])
                           in case some server does something different than above */
                        && (!CGIG(redirect_status_env) || !getenv(CGIG(redirect_status_env)))
                        ) {
-                       SG(sapi_headers).http_response_code = 400;
-                       PUTS("<b>Security Alert!</b> The PHP CGI cannot be accessed directly.\n\n\
+                       zend_try {
+                               SG(sapi_headers).http_response_code = 400;
+                               PUTS("<b>Security Alert!</b> The PHP CGI cannot be accessed directly.\n\n\
 <p>This PHP CGI binary was compiled with force-cgi-redirect enabled.  This\n\
 means that a page will only be served up if the REDIRECT_STATUS CGI variable is\n\
 set, e.g. via an Apache Action directive.</p>\n\
@@ -1506,7 +1507,8 @@ manual page for CGI security</a>.</p>\n\
 <p>For more information about changing this behaviour or re-enabling this webserver,\n\
 consult the installation file that came with this distribution, or visit \n\
 <a href=\"http://php.net/install.windows\">the manual page</a>.</p>\n");
-
+                       } zend_catch {
+                       } zend_end_try();
 #if defined(ZTS) && !defined(PHP_DEBUG)
                        /* XXX we're crashing here in msvc6 debug builds at
                           php_message_handler_for_zend:839 because
@@ -1936,13 +1938,16 @@ consult the installation file that came with this distribution, or visit \n\
                        running from shell (so fp == NULL), then fail.
                */
                if (retval == FAILURE && file_handle.handle.fp == NULL) {
-                       if (errno == EACCES) {
-                               SG(sapi_headers).http_response_code = 403;
-                               PUTS("Access denied.\n");
-                       } else {
-                               SG(sapi_headers).http_response_code = 404;
-                               PUTS("No input file specified.\n");
-                       }
+                       zend_try {
+                               if (errno == EACCES) {
+                                       SG(sapi_headers).http_response_code = 403;
+                                       PUTS("Access denied.\n");
+                               } else {
+                                       SG(sapi_headers).http_response_code = 404;
+                                       PUTS("No input file specified.\n");
+                               }
+                       } zend_catch {
+                       } zend_end_try();
 #if PHP_FASTCGI
                        /* we want to serve more requests if this is fastcgi
                           so cleanup and continue, request shutdown is