diff options
author | Jeff King <peff@peff.net> | 2017-03-28 15:46:36 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-03-30 14:59:50 -0700 |
commit | 3818b258dc145aae25c48cf4fca830be0cb69c6e (patch) | |
tree | e28436a6dd1946d7dab8a3c473e1a3da9b20e71b | |
parent | 6cd4a8982dbde0b6fee26faba2873c475af50a28 (diff) | |
download | git-3818b258dc145aae25c48cf4fca830be0cb69c6e.tar.gz |
create_branch: move msg setup closer to point of use
In create_branch() we write the reflog msg into a buffer in
the main function, but then use it only inside a
conditional. If you carefully follow the logic, you can
confirm that we never use the buffer uninitialized nor write
when it would not be used. But we can make this a lot more
obvious by simply moving the write step inside the
conditional.
Signed-off-by: Jeff King <peff@peff.net>
-rw-r--r-- | branch.c | 17 |
1 files changed, 9 insertions, 8 deletions
@@ -234,7 +234,7 @@ void create_branch(const char *name, const char *start_name, { struct commit *commit; unsigned char sha1[20]; - char *real_ref, msg[PATH_MAX + 20]; + char *real_ref; struct strbuf ref = STRBUF_INIT; int forcing = 0; int dont_change_ref = 0; @@ -290,19 +290,20 @@ void create_branch(const char *name, const char *start_name, die(_("Not a valid branch point: '%s'."), start_name); hashcpy(sha1, commit->object.oid.hash); - if (forcing) - snprintf(msg, sizeof msg, "branch: Reset to %s", - start_name); - else if (!dont_change_ref) - snprintf(msg, sizeof msg, "branch: Created from %s", - start_name); - if (reflog) log_all_ref_updates = LOG_REFS_NORMAL; if (!dont_change_ref) { struct ref_transaction *transaction; struct strbuf err = STRBUF_INIT; + char msg[PATH_MAX + 20]; + + if (forcing) + snprintf(msg, sizeof msg, "branch: Reset to %s", + start_name); + else + snprintf(msg, sizeof msg, "branch: Created from %s", + start_name); transaction = ref_transaction_begin(&err); if (!transaction || |