in the expression does NOT match. In this case val is NULL
and we should just set the value for the environment variable
like in the pattern case.
+1: jailletc36, jim, minfrin
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@
1847292 13f79535-47bb-0310-9956-
ffa450edef68
-*- coding: utf-8 -*-
Changes with Apache 2.4.38
+ *) mod_setenvif: We can have expressions that become true if a regex pattern
+ in the expression does NOT match. In this case val is NULL
+ and we should just set the value for the environment variable
+ like in the pattern case. [Christophe Jaillet]
+
*) mod_dav: Fix invalid Location header when a resource is created by
passing an absolute URI on the request line [Jim Jagielski]
PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
[ start all new proposals below, under PATCHES PROPOSED. ]
- *) mod_setenvif: We can have expressions that become true if a regex pattern
- in the expression does NOT match. In this case val is NULL
- and we should just set the value for the environment variable
- like in the pattern case.
- trunk patch: http://svn.apache.org/r1786235
- 2.4.x patch: svn merge -c 1786235 ^/httpd/httpd/trunk .
- +1: jailletc36, jim, minfrin
- jailletc36: Test-case added in r1845094
-
PATCHES PROPOSED TO BACKPORT FROM TRUNK:
[ New proposals should be added at the end of the list ]
apr_table_unset(r->subprocess_env, elts[j].key);
}
else {
- if (!b->pattern) {
+ /*
+ * Do regex replacement, if we did not use a pattern, so
+ * either a regex or an expression and if we have a val
+ * or at least we did not use an expression.
+ * Background: We can have expressions that become true
+ * if a regex pattern in the expression does NOT match.
+ * In this case val is NULL and we should just set the
+ * value for the environment variable like in the pattern
+ * case.
+ */
+ if (!b->pattern && (val || !b->expr)) {
char *replaced = ap_pregsub(r->pool, elts[j].val, val,
AP_MAX_REG_MATCH, regm);
if (replaced) {