diff options
author | Jo-Philipp Wich <jo@mein.io> | 2016-10-25 17:10:14 +0200 |
---|---|---|
committer | Jo-Philipp Wich <jo@mein.io> | 2016-10-25 17:45:59 +0200 |
commit | e6cfc911811b904494776938a480e0b77a14124a (patch) | |
tree | a0afad0258f60d043ad62d76847b5f2167d5da7f /lua.c | |
parent | 1628fa4b34aa143187353f81e8001b9a15286bda (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>
Diffstat (limited to 'lua.c')
-rw-r--r-- | lua.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -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); |