about summary refs log tree commit diff
path: root/parsing.c
diff options
context:
space:
mode:
authorLars Hjemli <hjemli@gmail.com>2007-05-18 13:06:45 +0200
committerLars Hjemli <hjemli@gmail.com>2007-05-18 22:51:02 +0200
commit3de63b264c36888dfd42dfdf3fc0aad4ce0c2b5c (patch)
tree6a6af99ad81e5dcecf0de6469d09f0d00789593e /parsing.c
parentcache_safe_filename() needs more buffers (diff)
downloadcgit-pink-3de63b264c36888dfd42dfdf3fc0aad4ce0c2b5c.tar.gz
cgit-pink-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>
Diffstat (limited to 'parsing.c')
-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)
 		p = strchr(cmd + 1, '/');
 		if (p) {
 			p[0] = '\0';
-			cgit_query_path = xstrdup(p + 1);
+			if (p[1])
+				cgit_query_path = xstrdup(p + 1);
 		}
 		cgit_cmd = cgit_get_cmd_index(cmd + 1);
 		cgit_query_page = xstrdup(cmd + 1);