ID:               47042
 Updated by:       j...@php.net
 Reported By:      sriram dot natarajan at sun dot com
 Status:           Open
 Bug Type:         CGI related
 Operating System: linux , solaris
 PHP Version:      5.2.9
 New Comment:

See also bug #47625


Previous Comments:
------------------------------------------------------------------------

[2009-03-13 00:10:22] sriram dot natarajan at sun dot com

hi
 this fix is not available with the latest php snapshot. my latest
patch needs to be looked into and considered fixing it for 5.3 as well
as 5.2.9

[sn123...@samp]'php5'>diff -u php-5.2.9/sapi/cgi/cgi_main.c.ORIG
php-5.2.9/sapi/cgi/cgi_main.c
--- php-5.2.9/sapi/cgi/cgi_main.c.ORIG  Sat Feb 28 00:44:54 2009
+++ php-5.2.9/sapi/cgi/cgi_main.c       Sat Feb 28 00:46:00 2009
@@ -961,7 +961,8 @@
                        }

                        if (env_path_translated != NULL &&
env_redirect_url != NULL &&
-                           orig_script_filename != NULL &&
script_path_translated != NULL) {
+                               env_path_translated !=
script_path_translated &&
+                               strcmp(env_path_translated,
script_path_translated) != 0) {
                                /* 
                                   pretty much apache specific.  If we
have a redirect_url
                                   then our script_filename and
script_name point to the

thanks
sriram

------------------------------------------------------------------------

[2009-03-10 10:43:09] j...@php.net

Please try using this CVS snapshot:

  http://snaps.php.net/php5.2-latest.tar.gz
 
For Windows:

  http://windows.php.net/snapshots/



------------------------------------------------------------------------

[2009-03-03 09:56:55] sriram dot natarajan at sun dot com

i have tested this patch with apache 2.0 and 2.2 configurations within
cgi and was able to get applications like joomla working fine.

can some one kindly look into the attached patch and provide your
feedback

thanks

------------------------------------------------------------------------

[2009-02-28 09:18:55] sriram dot natarajan at sun dot com

Hi
 php cgi module assumes that if redirect_uri is set , the request must
be from apache and throws away the script_name value and assigns
path_translated value to script name. 
 
 this is because, in cgi environment, apache sets the SCRIPT_NAME to
the location of the php-cgi binary and keeping the PATH_INFO variable to
point to the requested php script. this is very unique only to apache. 

 this crude test condition for apache is affecting sun web server
executing in fastcgi mode where in it looses the script_name value and
ends up returning with 'no input file specified'. 

 this happens only for sun web server and not for lighttpd because
lighttpd does not set redirect_uri when requested for index.php. 

 based on this analysis , earlier, i provided a patch to address this
issue . however, i overlooked the obvious and ended up breaking apache
in cgi mode. 

 because of this, a separate bug : http://bugs.php.net/bug.php?id=47149
has been filed and my suggested patch was reverted.

my sincere apology on providing this obviously broken patch and wasting
some of your time.

 pl. find attached a below patch that should do the right thing.
what we want to do is 

a) compare whether the script path is different from path translated
since we know that apache by default sets the script name to point to
the location of cgi binary and not the requested uri

[sn123...@samp]'php5'>diff -u php-5.2.9/sapi/cgi/cgi_main.c.ORIG
php-5.2.9/sapi/cgi/cgi_main.c
--- php-5.2.9/sapi/cgi/cgi_main.c.ORIG  Sat Feb 28 00:44:54 2009
+++ php-5.2.9/sapi/cgi/cgi_main.c       Sat Feb 28 00:46:00 2009
@@ -961,7 +961,8 @@
                        }

                        if (env_path_translated != NULL &&
env_redirect_url != NULL &&
-                           orig_script_filename != NULL &&
script_path_translated != NULL) {
+                               env_path_translated !=
script_path_translated &&
+                               strcmp(env_path_translated,
script_path_translated) != 0) {
                                /* 
                                   pretty much apache specific.  If we
have a redirect_url
                                   then our script_filename and
script_name point to the

------------------------------------------------------------------------

[2009-01-11 11:13:02] d...@php.net

This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.



------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/47042

-- 
Edit this bug report at http://bugs.php.net/?id=47042&edit=1

Reply via email to