From 86650bef654c4af35f09118d2ac2a72e23e69fcc Mon Sep 17 00:00:00 2001 From: Eric Covener Date: Fri, 31 Mar 2023 13:26:23 +0000 Subject: [PATCH] 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 --- changes-entries/rewrite-qsd-regression.diff | 3 +++ modules/mappers/mod_rewrite.c | 1 + 2 files changed, 4 insertions(+) create mode 100644 changes-entries/rewrite-qsd-regression.diff diff --git a/changes-entries/rewrite-qsd-regression.diff b/changes-entries/rewrite-qsd-regression.diff new file mode 100644 index 00000000000..ffba2ba200d --- /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 709ffc5289c..f93f23f04f9 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, '?')) { -- 2.47.2