From 6b1f8c32b1a602734f14b9cf8a9f59a767752677 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Thu, 16 Nov 2006 22:57:20 -0800 Subject: [PATCH] "git fmt-merge-msg" SIGSEGV Ok, this is a _really_ stupid case, and I don't think it matters, but hey, we should never SIGSEGV. Steps to reproduce: mkdir duh cd duh git init-db git-fmt-merge-msg < /dev/null will cause a SIGSEGV in cmd_fmt_merge_msg(), because we're doing a strncmp() with a NULL current_branch. And yeah, it's an insane schenario, and no, it doesn't really matter. The only reason I noticed was that a broken version of my "git pull" into an empty directory would cause this. This silly patch just replaces the SIGSEGV with a controlled exit with an error message. Signed-off-by: Linus Torvalds Signed-off-by: Junio C Hamano --- builtin-fmt-merge-msg.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/builtin-fmt-merge-msg.c b/builtin-fmt-merge-msg.c index 3d3097d299..87d3d63ec7 100644 --- a/builtin-fmt-merge-msg.c +++ b/builtin-fmt-merge-msg.c @@ -278,6 +278,8 @@ int cmd_fmt_merge_msg(int argc, const char **argv, const char *prefix) /* get current branch */ current_branch = resolve_ref("HEAD", head_sha1, 1, NULL); + if (!current_branch) + die("No current branch"); if (!strncmp(current_branch, "refs/heads/", 11)) current_branch += 11;