From mboxrd@z Thu Jan 1 00:00:00 1970 From: john at keeping.me.uk (John Keeping) Date: Sun, 7 Apr 2013 15:06:23 +0100 Subject: [PATCH] ui-blob: don't segfault when no path is given Message-ID: <3158d425f06b02bff2a6506af9307d8ddc16f0a9.1365343407.git.john@keeping.me.uk> It it possible to inspect blobs by specifying only the SHA-1, and CGit provides links to do so, for example if a tag points directly at a blob. In this case the path_items structure is never used, but creating it still causes strlen to be run on a null pointer. Fix this. This error was introduced by commit c1633c6 (Update git to v1.7.6.5 - 2013-03-02). Signed-off-by: John Keeping --- You can see this by inspecting the "larsh-public-key" tag in cgit.git. I noticed this because I was running under Clang's address sanitizer, which also meant I had compiled with -O1, I wonder if this could be optimized away at higher optimization levels. ui-blob.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui-blob.c b/ui-blob.c index c59fbcb..7aec0b1 100644 --- a/ui-blob.c +++ b/ui-blob.c @@ -80,7 +80,7 @@ void cgit_print_blob(const char *hex, char *path, const char *head) struct commit *commit; struct pathspec_item path_items = { .match = path, - .len = strlen(path) + .len = path ? strlen(path) : 0 }; struct pathspec paths = { .nr = 1, -- 1.8.2.692.g17a9715