#26341 [Fbk->NoF]: Bug/Segfault in virtual()
| From: | sniper@php.net | Date: | Tue, 02 Dec 2003 09:24:44 +0000 |
| Subject: | #26341 [Fbk->NoF]: Bug/Segfault in virtual() | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-51552@lists.php.net to get a copy of this message | ||
ID: 26341
Updated by: sniper@php.net
Reported By: karmak-php at karmak dot org
-Status: Feedback
+Status: No Feedback
Bug Type: Apache related
Operating System: Linux
PHP Version: 4.3.3
New Comment:
No feedback was provided. The bug is being suspended because
we assume that you are no longer experiencing the problem.
If this is not the case and you are able to provide the
information that was requested earlier, please do so and
change the status of the bug back to "Open". Thank you.
Previous Comments:
------------------------------------------------------------------------
[2003-11-27 18:12:38] sniper@php.net
Thank you for this bug report. To properly diagnose the problem, we
need a backtrace to see what is happening behind the scenes. To
find out how to generate a backtrace, please read
http://bugs.php.net/bugs-generating-backtrace.php
Once you have generated a backtrace, please submit it to this bug
report and change the status back to "Open". Thank you for helping
us make PHP better.
------------------------------------------------------------------------
[2003-11-21 01:49:40] karmak-php at karmak dot org
The link to the segfault example was wrong. It should have been:
http://staging.karmak.org/2003/php-virtual-bug/b1
------------------------------------------------------------------------
[2003-11-21 01:42:17] karmak-php at karmak dot org
Description:
------------
I've found two problems with virtual() that seem likely to be related.
The first is that virtual() does not behave quite like the apache
#include virtual="": When virtual() is used to call another php script,
the query string in the virtual() call is ignored. For example, if you
call virtual("/file?x=y"), the variable "x" will not be set in the
included php script. An example of this is posted at:
http://staging.karmak.org/2003/php-virtual-bug/a1
The source for the two files used in this example are at:
http://staging.karmak.org/2003/php-virtual-bug/a1-php.txt
http://staging.karmak.org/2003/php-virtual-bug/a2-php.txt
However, if you call the first script as "a1?x=y", the variable "x"
will be set to "y" in the second script.
This is not the way the Apache virtual function behaves: With Apache,
the query string in the virtual call is passed to the script, as can be
seen in the following shtml file:
http://staging.karmak.org/2003/php-virtual-bug/a3
The source to this file is at:
http://staging.karmak.org/2003/php-virtual-bug/a3-shtml.txt
Furthermore, all query string variables are reset when the virtual call
is issued. This can be seen by calling the shtml file:
http://staging.karmak.org/2003/php-virtual-bug/a4?x=y
With the corresponding source code at:
http://staging.karmak.org/2003/php-virtual-bug/a4-shtml.txt
Note that the x=y declaration is not passed to the php script.
--------------------------------------------
The second problem is more critical, as it leads to a segfault which is
displayed in the error logs, but nothing is reported in the browser and
only a partial page will be displayed. An example of this is at:
http://staging.karmak.org/2003/php-virtual-bug/a2
This page should end with the word "END", but instead it is cut off
mid-sentence. The source for the two files used in this example are
at:
http://staging.karmak.org/2003/php-virtual-bug/b1-php.txt
http://staging.karmak.org/2003/php-virtual-bug/b2-php.txt
Reproduce code:
---------------
See the description for source code URLs.
Expected result:
----------------
See description.
Actual result:
--------------
See description.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=26341&edit=1