ID:               13961
 Comment by:       daniele at orlandi dot com
 Reported By:      lampa at fee dot vutbr dot cz
 Status:           No Feedback
 Bug Type:         Apache related
 Operating System: FreeBSD
 PHP Version:      4.0.6, 4.1.0
 Assigned To:      derick
 New Comment:

This bug is still present in php 4.3.4 and may be harmful since all the
BrowserMatch functionality to workaround browser bugs in Apache is
essentially disabled.

As a proof of concept i patched sapi/apache2handler/sapi_apache2.c
(apache2filter is probably affected too) and the problem went away.

Note that the patch may not be perfect as I don't know how Apache and
PHP work internally very well.

--- php-4.3.4/sapi/apache2handler/sapi_apache2.c        2003-10-02
05:24:43.000000000 +0200
+++ php-4.3.4-patched/sapi/apache2handler/sapi_apache2.c       
2003-11-11 23:52:06.000000000 +0100
@@ -227,9 +227,14 @@
        char *key, *val;
        zval **path_translated_zv;
  
+       char *t;
+
        APR_ARRAY_FOREACH_OPEN(arr, key, val)
                if (!val) val = empty_string;
-               php_register_variable(key, val, track_vars_array
TSRMLS_CC);
+
+               t = estrndup(key, strlen(key));
+               php_register_variable(t, val, track_vars_array
TSRMLS_CC);
+               efree(t);
        APR_ARRAY_FOREACH_CLOSE()


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

[2002-10-15 01:00:02] php-bugs at lists dot php dot net

No feedback was provided for this bug for over 2 weeks, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".

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

[2002-09-29 20:41:13] [EMAIL PROTECTED]

Please try using this CVS snapshot:

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

This should be fixed in CVS (If I remember correctly) so could you
please try the snapshot and verify it for us?


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

[2001-12-11 09:57:36] lampa at fee dot vutbr dot cz

Not fixed in 4.1.0. Why? To be clear, one call is neccessary:

for (i = 0; i < arr->nelts; i++) {
                char *val,*key;

                if (elts[i].val) {
                        val = elts[i].val;
                } else {
                        val = empty_string;
                }
                key = estrdup(elts[i].key); /* HERE */
                php_register_variable(key, val, track_vars_array 
ELS_CC PLS_CC)
;
        }


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

[2001-11-07 04:33:03] [EMAIL PROTECTED]

This is not okay, PHP should not change the original key here.
Checking it out.

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

[2001-11-07 01:56:30] lampa at fee dot vutbr dot cz

I don't think that FAQ solves that problem.
Look at the source code of Apache server. There
are several tests of the variable "force-response-1.0" 
there. The problem is not that php code variable
is $force-response-1_0, that's OK, but the real
problem is that apache variable name in r->subprocess_env
is changed too. That's side effect and not pleasent.

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

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/13961

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

Reply via email to