Code

commit, merge: initialize static strbuf
authorJeff King <peff@peff.net>
Sun, 18 Dec 2011 05:03:22 +0000 (00:03 -0500)
committerJunio C Hamano <gitster@pobox.com>
Sun, 18 Dec 2011 08:11:54 +0000 (00:11 -0800)
Strbufs cannot rely on static all-zero initialization; instead, they must
use STRBUF_INIT to point to the "slopbuf".

Without this patch, "git commit --no-message" segfaults reliably. Fix the
same issue in builtin/merge.c as well.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-commit.c
builtin-merge.c

index 7434797d1b850b25d13aab8d7aeaf85d02109a61..5b418a53f8af4bc5241f7ffcbad8592bd3e8e3af 100644 (file)
@@ -69,7 +69,7 @@ static char *cleanup_arg;
 
 static int use_editor = 1, initial_commit, in_merge;
 static const char *only_include_assumed;
-static struct strbuf message;
+static struct strbuf message = STRBUF_INIT;
 
 static int opt_parse_m(const struct option *opt, const char *arg, int unset)
 {
index 8825dcf8d9c4cce3fa0321a808877237d05d4f5a..49e9115ec449eb4b8b38d9391496b5640c403118 100644 (file)
@@ -42,7 +42,7 @@ static const char * const builtin_merge_usage[] = {
 static int show_diffstat = 1, option_log, squash;
 static int option_commit = 1, allow_fast_forward = 1;
 static int allow_trivial = 1, have_message;
-static struct strbuf merge_msg;
+static struct strbuf merge_msg = STRBUF_INIT;
 static struct commit_list *remoteheads;
 static unsigned char head[20], stash[20];
 static struct strategy **use_strategies;