summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Covener <covener@apache.org>2023-03-31 13:26:23 +0000
committerEric Covener <covener@apache.org>2023-03-31 13:26:23 +0000
commit86650bef654c4af35f09118d2ac2a72e23e69fcc (patch)
treeab16e3ac79bb5adfdddfcf98d22b010d128dba37
parent8dcdb745b2ff37c6fa623d562ff87be49f00f122 (diff)
downloadhttpd-86650bef654c4af35f09118d2ac2a72e23e69fcc.tar.gz
Backport recent rewrite trunk features
https://patch-diff.githubusercontent.com/raw/apache/httpd/pull/348.diff Submitted by: covener Reviewed by: covener, ylavic, rpluem Github: closes #348 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1908859 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--changes-entries/rewrite-qsd-regression.diff3
-rw-r--r--modules/mappers/mod_rewrite.c1
2 files changed, 4 insertions, 0 deletions
diff --git a/changes-entries/rewrite-qsd-regression.diff b/changes-entries/rewrite-qsd-regression.diff
new file mode 100644
index 0000000000..ffba2ba200
--- /dev/null
+++ b/changes-entries/rewrite-qsd-regression.diff
@@ -0,0 +1,3 @@
+ *) mod_rewrite: Fix a 2.4.56 regression for substitutions ending
+ in a question mark. PR66547. [Eric Covener]
+
diff --git a/modules/mappers/mod_rewrite.c b/modules/mappers/mod_rewrite.c
index 709ffc5289..f93f23f04f 100644
--- a/modules/mappers/mod_rewrite.c
+++ b/modules/mappers/mod_rewrite.c
@@ -3866,6 +3866,7 @@ static const char *cmd_rewriterule(cmd_parms *cmd, void *in_dconf,
if (*(a2_end-1) == '?') {
/* a literal ? at the end of the unsubstituted rewrite rule */
newrule->flags |= RULEFLAG_QSNONE;
+ *(a2_end-1) = '\0'; /* trailing ? has done its job */
}
else if (newrule->flags & RULEFLAG_QSDISCARD) {
if (NULL == ap_strchr(newrule->output, '?')) {