aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@osdl.org>2006-11-16 22:57:20 -0800
committerJunio C Hamano <junkio@cox.net>2006-11-16 23:45:57 -0800
commit6b1f8c32b1a602734f14b9cf8a9f59a767752677 (patch)
tree94da67b1ece907d6d3838c24a06686431d0fdca8
parentd09e79cb1c474b3bb323356e6d1072922ab7ccb2 (diff)
downloadgit-6b1f8c32b1a602734f14b9cf8a9f59a767752677.tar.gz
git-6b1f8c32b1a602734f14b9cf8a9f59a767752677.tar.xz
"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 <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r--builtin-fmt-merge-msg.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/builtin-fmt-merge-msg.c b/builtin-fmt-merge-msg.c
index 3d3097d29..87d3d63ec 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;