|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2006-12-22 00:28 UTC] to_devnull at yahoo dot com
Description: ------------ I'm "reopening" Bug #13961 since some moron marked it as "bogus" and I can't comment on it: http://bugs.php.net/bug.php?id=13961 Apache module mod_setenvif sets variables in r->subprocess_env. If variable name contains character ".", then sapi_apache_register_server_variables() will replace it with "_". This breaks internal variables like force-response-1.0 (php changes it to force-response-1_0). I hit this bug with PHP4.4.3/PHP5 and latest Apache 1.3.37. Spent several hours tracing in debugger why "downgrade-1.0" becomes "downgrade-1_0". This is a serious bug -- basically it's impossible to downgrade client request/server response to HTTP 1.0 (or disable chunking) if php is involved. What a shame! Reproduce code: --------------- I actually traced it by shoving a static string containing '.' in r->subprocess_env and thus getting Apache to core dump when php tries to write to read-only memory in php_register_variable_ex(). PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Thu Oct 23 21:00:01 2025 UTC |
This a strange reply ("Read a manual, this is not a bug"). Am I doing anything wrong here? I'm using default php installation and register_globals is Off in php.ini. Is there a way to configure php not to touch values in r->subprocess_env? My point is that php silently breaks Apache behavior by modifying specific data that is supposed to be read-only. If Apache allows "force-response-1.0" in its subprocess_env table, why php changes it? If php wants to modify input var names, it should make a copy. I may be totally wrong and miss some important configuration issue. In this case I'd greatly appreciate if you point me in the right direction. But canned response is not an answer.