[PATCH] ui-blob: don't segfault when no path is given

John Keeping john at keeping.me.uk
Sun Apr 7 16:06:23 CEST 2013


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 <john at keeping.me.uk>
---
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





More information about the CGit mailing list