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=35096edit=1