summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2016-10-25 17:10:14 +0200
committerJo-Philipp Wich <jo@mein.io>2016-10-25 17:45:59 +0200
commite6cfc911811b904494776938a480e0b77a14124a (patch)
treea0afad0258f60d043ad62d76847b5f2167d5da7f
parent1628fa4b34aa143187353f81e8001b9a15286bda (diff)
lua: ensure that PATH_INFO starts with a slash
When calculating the matching prefix length, make sure to not take the trailing slash into account in order to ensure that the resulting PATH_INFO string always starts with a slash. This ensures that an url like "/foo" against the matching prefix "/" or "/foo/bar" against "/foo/" result in "/foo" and "/bar" respectively. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
-rw-r--r--lua.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/lua.c b/lua.c
index 2134904..3efe22b 100644
--- a/lua.c
+++ b/lua.c
@@ -222,6 +222,10 @@ static void lua_main(struct client *cl, struct path_info *pi, char *url)
pi->query = str + 1;
path_len = str - url;
}
+
+ if (prefix_len > 0 && conf.lua_prefix[prefix_len - 1] == '/')
+ prefix_len--;
+
if (path_len > prefix_len) {
lua_pushlstring(L, url + prefix_len,
path_len - prefix_len);