summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRoland Reichwein <mail@reichwein.it>2020-05-08 20:02:54 +0200
committerRoland Reichwein <mail@reichwein.it>2020-05-08 20:02:54 +0200
commit474887f30d442b6f18ec9e8f3335cc73fee6551d (patch)
tree88806f32ac15d448be704aa93f499f8e39aeadb8
parent905abe4f233d23a567b0d36bd1d25e86bc949e60 (diff)
Fix path matching
-rw-r--r--config.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/config.cpp b/config.cpp
index 26af2b5..bc09af9 100644
--- a/config.cpp
+++ b/config.cpp
@@ -257,7 +257,10 @@ const Path& Config::GetPath(const Socket& socket, const std::string& requested_h
if (m_host == host) {
for (const auto& path: site.paths) {
if (boost::starts_with(requested_path, path.requested) &&
- "/?\0"s.find(requested_path[path.requested.size()]) != std::string::npos &&
+ ("/?"s.find(requested_path[path.requested.size()]) != std::string::npos ||
+ requested_path[path.requested.size()] == 0 ||
+ requested_path[path.requested.size() - 1] == '/'
+ ) &&
path.requested.size() > path_len)
{
path_len = path.requested.size();