From e6cfc911811b904494776938a480e0b77a14124a Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Tue, 25 Oct 2016 17:10:14 +0200 Subject: [PATCH] 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 --- lua.c | 4 ++++ 1 file changed, 4 insertions(+) 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); -- 2.11.0