summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2016-10-25 16:23:05 +0200
committerJo-Philipp Wich <jo@mein.io>2016-10-25 16:32:50 +0200
commit1628fa4b34aa143187353f81e8001b9a15286bda (patch)
tree0f4cc4bab29f706d0f46e3cec46fc4d9429979f8
parent577c20c5f780a241d526b16345cf42ea81b675ab (diff)
downloaduhttpd2-1628fa4b34aa143187353f81e8001b9a15286bda.tar.gz
utils: add proper handling of "/" special case in uh_path_match()
The special prefix of "/" should match any url by definition but the final assertion which ensures that the matched prefix ends in '\0' or '/' is causing matches against the "/" prefix to fail. Add some extra code to handle this special case to implemented the expected behaviour. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
-rw-r--r--utils.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/utils.c b/utils.c
index 29e03c0..9342eb6 100644
--- a/utils.c
+++ b/utils.c
@@ -208,6 +208,10 @@ bool uh_path_match(const char *prefix, const char *url)
{
int len = strlen(prefix);
+ /* A prefix of "/" will - by definition - match any url */
+ if (prefix[0] == '/' && len == 1)
+ return true;
+
if (strncmp(url, prefix, len) != 0)
return false;