From: Dmitry Stogov
Date: Mon, 30 Nov 2009 14:43:22 +0000 (+0000)
Subject: Fixed bug #50168 (FastCGI fails with wrong error on HEAD request to non-existant...
X-Git-Tag: php-5.2.12RC4~25
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=38ba16b060883c9ede2d23ff049b4caf792b9c6c;p=php
Fixed bug #50168 (FastCGI fails with wrong error on HEAD request to non-existant file)
---
diff --git a/NEWS b/NEWS
index 10ac56f416..b768692847 100644
--- 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
diff --git a/sapi/cgi/cgi_main.c b/sapi/cgi/cgi_main.c
index dff71ec5d4..797e97cf3d 100644
--- a/sapi/cgi/cgi_main.c
+++ b/sapi/cgi/cgi_main.c
@@ -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("Security Alert! The PHP CGI cannot be accessed directly.\n\n\
+ zend_try {
+ SG(sapi_headers).http_response_code = 400;
+ PUTS("Security Alert! The PHP CGI cannot be accessed directly.\n\n\
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.
\n\
@@ -1506,7 +1507,8 @@ manual page for CGI security.
\n\
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\
the manual page.
\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