diff options
author | Lars Hjemli | 2007-05-18 13:06:45 +0200 |
---|---|---|
committer | Lars Hjemli | 2007-05-18 22:51:02 +0200 |
commit | 3de63b264c36888dfd42dfdf3fc0aad4ce0c2b5c (patch) | |
tree | 6a6af99ad81e5dcecf0de6469d09f0d00789593e | |
parent | cache_safe_filename() needs more buffers (diff) | |
download | cgit-3de63b264c36888dfd42dfdf3fc0aad4ce0c2b5c.tar.gz cgit-3de63b264c36888dfd42dfdf3fc0aad4ce0c2b5c.zip |
Don't be fooled by trailing '/' in url-parameter
cgit_parse_url() didn't check if the path-part of urls contained a real path or just a trailing slash. This made the log-page die since the path filtering supplied an invalid path argument. This fixes it. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | parsing.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/parsing.c b/parsing.c index a028625..4420e58 100644 --- a/parsing.c +++ b/parsing.c | |||
@@ -167,7 +167,8 @@ void cgit_parse_url(const char *url) | |||
167 | p = strchr(cmd + 1, '/'); | 167 | p = strchr(cmd + 1, '/'); |
168 | if (p) { | 168 | if (p) { |
169 | p[0] = '\0'; | 169 | p[0] = '\0'; |
170 | cgit_query_path = xstrdup(p + 1); | 170 | if (p[1]) |
171 | cgit_query_path = xstrdup(p + 1); | ||
171 | } | 172 | } |
172 | cgit_cmd = cgit_get_cmd_index(cmd + 1); | 173 | cgit_cmd = cgit_get_cmd_index(cmd + 1); |
173 | cgit_query_page = xstrdup(cmd + 1); | 174 | cgit_query_page = xstrdup(cmd + 1); |