diff options
Diffstat (limited to 'net-www/apache/files/apache-1.3.29-usertrack_bug.patch')
-rw-r--r-- | net-www/apache/files/apache-1.3.29-usertrack_bug.patch | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/net-www/apache/files/apache-1.3.29-usertrack_bug.patch b/net-www/apache/files/apache-1.3.29-usertrack_bug.patch new file mode 100644 index 000000000000..6794206aada8 --- /dev/null +++ b/net-www/apache/files/apache-1.3.29-usertrack_bug.patch @@ -0,0 +1,72 @@ +=================================================================== +RCS file: /home/cvspublic/apache-1.3/src/modules/standard/mod_usertrack.c,v +retrieving revision 1.59 +retrieving revision 1.60 +diff -u -r1.59 -r1.60 +--- apache-1.3/src/modules/standard/mod_usertrack.c 2004/01/13 10:22:44 1.59 ++++ apache-1.3/src/modules/standard/mod_usertrack.c 2004/01/13 13:47:34 1.60 +@@ -286,10 +286,29 @@ + return; + } + +-/* dcfg->regexp is "^cookie_name=([^;]+)|;[ \t]+cookie_name=([^;]+)", +- * which has three subexpressions, $0..$2 */ ++/* ++ * dcfg->regexp is "^cookie_name=([^;]+)|;[ \t]+cookie_name=([^;]+)", ++ * which has three subexpressions, $0..$2 ++ */ + #define NUM_SUBS 3 + ++static void set_and_comp_regexp(cookie_dir_rec *dcfg, ++ pool *p, ++ const char *cookie_name) ++{ ++ /* ++ * The goal is to end up with this regexp, ++ * ^cookie_name=([^;]+)|;[\t]+cookie_name=([^;]+) ++ * with cookie_name obviously substituted either ++ * with the real cookie name set by the user in httpd.conf, ++ * or with the default COOKIE_NAME. ++ */ ++ dcfg->regexp_string = ap_pstrcat(p, "^", cookie_name, ++ "=([^;]+)|;[ \t]+", cookie_name, ++ "=([^;]+)", NULL); ++ dcfg->regexp = ap_pregcomp(p, dcfg->regexp_string, REG_EXTENDED); ++} ++ + static int spot_cookie(request_rec *r) + { + cookie_dir_rec *dcfg = ap_get_module_config(r->per_dir_config, +@@ -352,6 +371,11 @@ + dcfg->style = CT_UNSET; + dcfg->format = CF_NORMAL; + dcfg->enabled = 0; ++ /* ++ * In case the user does not use the CookieName directive, ++ * we need to compile the regexp for the default cookie name. ++ */ ++ set_and_comp_regexp(dcfg, p, COOKIE_NAME); + return dcfg; + } + +@@ -436,18 +460,10 @@ + { + cookie_dir_rec *dcfg = (cookie_dir_rec *) mconfig; + +- /* The goal is to end up with this regexp, +- * ^cookie_name=([^;]+)|;[ \t]+cookie_name=([^;]+) +- * with cookie_name +- * obviously substituted with the real cookie name set by the +- * user in httpd.conf. */ +- dcfg->regexp_string = ap_pstrcat(cmd->pool, "^", name, +- "=([^;]+)|;[ \t]+", name, +- "=([^;]+)", NULL); +- + dcfg->cookie_name = ap_pstrdup(cmd->pool, name); + +- dcfg->regexp = ap_pregcomp(cmd->pool, dcfg->regexp_string, REG_EXTENDED); ++ set_and_comp_regexp(dcfg, cmd->pool, name); ++ + if (dcfg->regexp == NULL) { + return "Regular expression could not be compiled."; + } |