ID:               35096
 Comment by:       sergeym at hoster dot ru
 Reported By:      rob at burningsoda dot com
 Status:           Feedback
 Bug Type:         Apache2 related
 Operating System: FreeBSD 6.0RC1
 PHP Version:      4CVS-2005-11-04 (snap)
 New Comment:

PHP 4.4.1 with patch from FreeBSD team works fine (seems to...). But,
if add some module(s) - it works again as described in bugreport. M'be
order of modules in list is important...

--- sapi/apache2handler/sapi_apache2.c.orig     Thu Nov  3 10:13:33
2005
+++ sapi/apache2handler/sapi_apache2.c  Thu Nov  3 10:14:41 2005
@@ -535,7 +535,7 @@
                if (!parent_req) {
                        parent_req = ctx->r;
                }
-               if (parent_req && strcmp(parent_req->handler,
PHP_MAGIC_TYPE) && strcmp(parent_req->handler, PHP_SOURCE_MAGIC_TYPE)
&& strcmp(parent_req->h
andler, PHP_SCRIPT)) {
+               if (parent_req && parent_req->handler &&
strcmp(parent_req->handler, PHP_MAGIC_TYPE) &&
strcmp(parent_req->handler, PHP_SOURCE_MAGIC_TYPE)
&& strcmp(parent_req->handler, PHP_SCRIPT)) {
                        if (php_apache_request_ctor(r, ctx
TSRMLS_CC)!=SUCCESS) {
                                zend_bailout();
                        }


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

[2005-11-05 09:45:15] tmelzer at tomesoft dot de

Further analyzes have shown me that the fix in 4.4.x-dev was in
sapi/apache2handler/sapi_apache2.c in function php_handler to guard
against the member 'handler' on struct request_rec of beeing NULL and
then accessing it. This was fixed in only one case where around line
518 
'if (parent_req && parent_req->handler && ...'. After I added an
r->handler && strcmp ... to the other places where the structure member
is used the crash went away but I got a 404 - file not found error. I
think this is related to the fact that I'm not sure what to do if
several of this if () statements are evalute false i.e. what to place
in the else block.

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

[2005-11-04 22:57:08] [EMAIL PROTECTED]

I want you to try the PHP 5 snapshot because I want to be sure this is
only happening with PHP 4. In which case we have better chance of
figuring out what fix to backport from PHP 5.

On the other hand, if this also happens with PHP 5, we really need to
know since we're about to release PHP 5.1 and it would be nice to fix
this kind of things before the release..


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

[2005-11-04 20:04:37] rob at burningsoda dot com

sniper,

This problem occurs only when using PHP 4.4.1 and the PHP 4-snapshots
_and_ apache 2.x. Why should I try a 5.x-snapshot? Do I misunderstand
you?

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

[2005-11-04 09:25:24] [EMAIL PROTECTED]

Please try using this CVS snapshot:

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



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

[2005-11-04 02:49:53] rob at burningsoda dot com

Description:
------------
I just downloaded

Stable (4.4.x-dev)
Built On: Nov 03, 2005 23:51 GMT

and built it:

PHP 4.4.2-dev (cli) (built: Nov  4 2005 02:17:10)

But it seems like, the following bug is _not_ fixed
in that snapshot:

http://bugs.php.net/bug.php?id=35059

This happens with _any_ RewriteRule I use.

Reproduce code:
---------------
Try to use mod_rewrite on Apache 2.x to modify any URL.
Small test case:

index.php:
<?php echo($_GET['myarg']); ?>

RewriteRule:
RewriteRule ^(.+)/$ index.php?myarg=$1 [L]

URLs to try:
1. http://localhost/index.php?myarg=bla
2. http://localhost/blub/
3. http://localhost/index.php/


Expected result:
----------------
In all three cases a document should be delivered:

1. "bla"
2. "blub"
3. "index.php"

Actual result:
--------------
1. Correctly delivers document.
2. No document is delivered.
3. Correctly delivers document.


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


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

Reply via email to