You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bugs@httpd.apache.org by bu...@apache.org on 2020/04/18 09:10:38 UTC
[Bug 64365] New: ProxyFCGISetEnvIf does not evaluate condition when
unsetting variables.
https://bz.apache.org/bugzilla/show_bug.cgi?id=64365
Bug ID: 64365
Summary: ProxyFCGISetEnvIf does not evaluate condition when
unsetting variables.
Product: Apache httpd-2
Version: 2.4.43
Hardware: PC
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: mod_proxy_fcgi
Assignee: bugs@httpd.apache.org
Reporter: mail@mikoenig.net
Target Milestone: ---
Created attachment 37183
--> https://bz.apache.org/bugzilla/attachment.cgi?id=37183&action=edit
A patch that appears to fix the problem for me
Context
=======
The ProxyFCGISetEnvIf directive allows overriding variables sent to FastCGI
servers. It comes in two forms:
* Setting variables, taking 3 arguments: ProxyFCGISetEnvIf <condition>
<varname> <value>
* Unsetting variables, taking 2 arguments: ProxyFCGISetEnvIf <condition>
!<varname>
The Bug
=======
When using the directive's second form, the variable is always unset, ignoring
the condition.
Steps to Reproduce
==================
1. Try unsetting a FastCGI variable conditionally, or (for purpose of
demonstration) even with a condition of "false".
Examples:
ProxyFCGISetEnvIf "false" !SERVER_SOFTWARE
ProxyFCGISetEnvIf "%{QUERY_STRING} =~ /hello/" !SERVER_SOFTWARE
ProxyFCGISetEnvIf "-z reqenv('cloudflare')" !HTTP_CF_CONNECTING_IP
2. Observe the specified variables being unset even if the condition evaluates
to false.
Example PHP script:
<?php var_dump($_SERVER['SERVER_SOFTWARE']);
Example output:
NULL
Expected output:
string(6) "Apache"
Note that the example directive conditions above work as expected when used
with setting instead of unsetting variables.
Proposed Solution
=================
I looked into the code (functions "cmd_setenv" and "fix_cgivars" in
"modules/proxy/mod_proxy_fcgi.c") and it appears the condition is correctly
parsed but during request handling unsetting takes precedence over even
evaluating the condition, see line 178.
I created a small patch (see attachment) which appears to fix the problem for
me, but it would be good if someone familiar with the code took a look.
As far as I can tell, both the problem and my patch apply to all versions of
httpd since the ProxyFCGISetEnvIf directive was introduced in version 2.4.26,
including the current development version.
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org
[Bug 64365] ProxyFCGISetEnvIf does not evaluate condition when
unsetting variables.
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=64365
--- Comment #1 from Millay Moede <mi...@gmail.com> ---
Apache ia mainly using as the local server for testing the website. but
sometimes it gives error then you can restart the apache sever. For instant
support related to the email please visit https://www.emailexpert247.com/ or
dial Email Support Number for the best solution.
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org
[Bug 64365] ProxyFCGISetEnvIf does not evaluate condition when
unsetting variables.
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=64365
Eric Covener <co...@gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |FixedInTrunk
--- Comment #2 from Eric Covener <co...@gmail.com> ---
Thanks for the report and patch Michael, I committed with some additions in
r1877829 and will propose for backport.
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org
[Bug 64365] ProxyFCGISetEnvIf does not evaluate condition when
unsetting variables.
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=64365
Graham Leggett <mi...@apache.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|NEW |RESOLVED
--- Comment #3 from Graham Leggett <mi...@apache.org> ---
Backported to v2.4.44.
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org
[Bug 64365] ProxyFCGISetEnvIf does not evaluate condition when
unsetting variables.
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=64365
Eric Covener <co...@gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |PatchAvailable
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org