diff options
author | Linus Torvalds <torvalds@osdl.org> | 2006-11-16 22:57:20 -0800 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-11-16 23:45:57 -0800 |
commit | 6b1f8c32b1a602734f14b9cf8a9f59a767752677 (patch) | |
tree | 94da67b1ece907d6d3838c24a06686431d0fdca8 | |
parent | d09e79cb1c474b3bb323356e6d1072922ab7ccb2 (diff) | |
download | git-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.c | 2 |
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; |