Commit b9810c6a authored by Graham Leggett's avatar Graham Leggett
Browse files

*) 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.
+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
parent d4373664
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
                                                         -*- 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]

+0 −9
Original line number Diff line number Diff line
@@ -126,15 +126,6 @@ RELEASE SHOWSTOPPERS:
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 ]
+11 −1
Original line number Diff line number Diff line
@@ -597,7 +597,17 @@ static int match_headers(request_rec *r)
                    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) {