httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rj...@apache.org
Subject svn commit: r1365774 - in /httpd/httpd/branches/2.4.x: ./ CHANGES STATUS modules/metadata/mod_setenvif.c
Date Wed, 25 Jul 2012 21:29:15 GMT
Author: rjung
Date: Wed Jul 25 21:29:15 2012
New Revision: 1365774

URL: http://svn.apache.org/viewvc?rev=1365774&view=rev
Log:
mod_setenvif: Compile the regex used by is_header_regex() only once
during startup This should save some memory, especially with .htaccess

Backport of r1343099.

Submitted by: sf
Reviewed by: rjung, jim
Backported by: rjung

Modified:
    httpd/httpd/branches/2.4.x/   (props changed)
    httpd/httpd/branches/2.4.x/CHANGES
    httpd/httpd/branches/2.4.x/STATUS
    httpd/httpd/branches/2.4.x/modules/metadata/mod_setenvif.c

Propchange: httpd/httpd/branches/2.4.x/
------------------------------------------------------------------------------
  Merged /httpd/httpd/trunk:r1343099

Modified: httpd/httpd/branches/2.4.x/CHANGES
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/CHANGES?rev=1365774&r1=1365773&r2=1365774&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/CHANGES [utf-8] (original)
+++ httpd/httpd/branches/2.4.x/CHANGES [utf-8] Wed Jul 25 21:29:15 2012
@@ -1,6 +1,5 @@
                                                          -*- coding: utf-8 -*-
 
-<<<<<<< .working
 Changes with Apache 2.4.3
 
   *) SECURITY: CVE-2012-2687 (cve.mitre.org)
@@ -8,6 +7,10 @@ Changes with Apache 2.4.3
      possible XSS for a site where untrusted users can upload files to
      a location with MultiViews enabled. [Niels Heinen <heinenn google.com>]
 
+  *) mod_setenvif: Compile some global regex only once during startup.
+     This should save some memory, especially with .htaccess.
+     [Stefan Fritsch]
+
   *) core: Add the port number to the vhost's name in the scoreboard.
      [Stefan Fritsch]
 

Modified: httpd/httpd/branches/2.4.x/STATUS
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/STATUS?rev=1365774&r1=1365773&r2=1365774&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/STATUS (original)
+++ httpd/httpd/branches/2.4.x/STATUS Wed Jul 25 21:29:15 2012
@@ -88,11 +88,6 @@ RELEASE SHOWSTOPPERS:
 PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
   [ start all new proposals below, under PATCHES PROPOSED. ]
 
-   * mod_setenvif: Compile the regex used by is_header_regex() only once
-     during startup This should save some memory, especially with .htaccess
-     trunk patch: http://svn.apache.org/viewvc?view=revision&revision=1343099
-     2.4.x patch: trunk patch works
-     +1: rjung, jim, sf
 
 PATCHES PROPOSED TO BACKPORT FROM TRUNK:
   [ New proposals should be added at the end of the list ]

Modified: httpd/httpd/branches/2.4.x/modules/metadata/mod_setenvif.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/modules/metadata/mod_setenvif.c?rev=1365774&r1=1365773&r2=1365774&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/modules/metadata/mod_setenvif.c (original)
+++ httpd/httpd/branches/2.4.x/modules/metadata/mod_setenvif.c Wed Jul 25 21:29:15 2012
@@ -165,17 +165,15 @@ static void *merge_setenvif_config(apr_p
 #define ICASE_MAGIC  ((void *)(&setenvif_module))
 #define SEI_MAGIC_HEIRLOOM "setenvif-phase-flag"
 
+static ap_regex_t *is_header_regex_regex;
+
 static int is_header_regex(apr_pool_t *p, const char* name)
 {
     /* If a Header name contains characters other than:
      *    -,_,[A-Z\, [a-z] and [0-9].
      * assume the header name is a regular expression.
      */
-    ap_regex_t *preg = ap_pregcomp(p, "^[-A-Za-z0-9_]*$",
-                                   (AP_REG_EXTENDED | AP_REG_NOSUB ));
-    ap_assert(preg != NULL);
-
-    if (ap_regexec(preg, name, 0, NULL, 0)) {
+    if (ap_regexec(is_header_regex_regex, name, 0, NULL, 0)) {
         return 1;
     }
 
@@ -633,6 +631,10 @@ static void register_hooks(apr_pool_t *p
 {
     ap_hook_header_parser(match_headers, NULL, NULL, APR_HOOK_MIDDLE);
     ap_hook_post_read_request(match_headers, NULL, NULL, APR_HOOK_MIDDLE);
+
+    is_header_regex_regex = ap_pregcomp(p, "^[-A-Za-z0-9_]*$",
+                                        (AP_REG_EXTENDED | AP_REG_NOSUB ));
+    ap_assert(is_header_regex_regex != NULL);
 }
 
 AP_DECLARE_MODULE(setenvif) =



Mime
View raw message