about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorLars Hjemli2007-05-18 13:06:45 +0200
committerLars Hjemli2007-05-18 22:51:02 +0200
commit3de63b264c36888dfd42dfdf3fc0aad4ce0c2b5c (patch)
tree6a6af99ad81e5dcecf0de6469d09f0d00789593e
parentcache_safe_filename() needs more buffers (diff)
downloadcgit-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.c3
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);