From 186e7073fbccc04a496ef27f987f69b81ed87107 Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Thu, 14 Apr 2016 06:29:50 -0400 Subject: [PATCH] [mod_redirect,mod-rewrite] short-circuit if blank replacement (fixes #2085) x-ref: "null redirects for mod_redirect" https://redmine.lighttpd.net/issues/2085 --- NEWS | 1 + src/mod_redirect.c | 4 ++++ src/mod_rewrite.c | 4 ++++ 3 files changed, 9 insertions(+) diff --git a/NEWS b/NEWS index d188f5d1..105544ef 100644 --- a/NEWS +++ b/NEWS @@ -76,6 +76,7 @@ NEWS * [core] setrlimit max-fds <= rlim_max for non-root (fixes #2723) * [mod_ssi] config ssi.conditional-requests * [mod_ssi] config ssi.exec (fixes #2051) + * [mod_redirect,mod_rewrite] short-circuit if blank replacement (fixes #2085) - 1.4.39 - 2016-01-02 * [core] fix memset_s call (fixes #2698) diff --git a/src/mod_redirect.c b/src/mod_redirect.c index 5e99dcb5..e0ee5bae 100644 --- a/src/mod_redirect.c +++ b/src/mod_redirect.c @@ -209,6 +209,10 @@ static handler_t mod_redirect_uri_handler(server *srv, connection *con, void *p_ "execution error while matching: ", n); return HANDLER_ERROR; } + } else if (0 == pattern_len) { + /* short-circuit if blank replacement pattern + * (do not attempt to match against remaining redirect rules) */ + return HANDLER_GO_ON; } else { const char **list; size_t start; diff --git a/src/mod_rewrite.c b/src/mod_rewrite.c index fac6c49f..faa7f841 100644 --- a/src/mod_rewrite.c +++ b/src/mod_rewrite.c @@ -383,6 +383,10 @@ static handler_t process_rewrite_rules(server *srv, connection *con, plugin_data "execution error while matching: ", n); return HANDLER_ERROR; } + } else if (0 == pattern_len) { + /* short-circuit if blank replacement pattern + * (do not attempt to match against remaining rewrite rules) */ + return HANDLER_GO_ON; } else { const char **list; size_t start;