summaryrefslogtreecommitdiff
path: root/sequencer.c
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2013-06-24 13:48:28 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2013-06-24 13:48:28 -0700
commit0039d60c3fdf0e01ad7e6fce59b2522764f2edc8 (patch)
tree11143cf0c8a162e943ee44e31232adb228c2e4f8 /sequencer.c
parentRevert "Merge branch 'jg/status-config'" (diff)
parentsequencer: avoid leaking message buffer when refusing to create an empty commit (diff)
downloadtgif-0039d60c3fdf0e01ad7e6fce59b2522764f2edc8.tar.xz
Merge branch 'fc/sequencer-plug-leak'
Plug a small leak in an error codepath. * fc/sequencer-plug-leak: sequencer: avoid leaking message buffer when refusing to create an empty commit sequencer: remove useless indentation
Diffstat (limited to 'sequencer.c')
-rw-r--r--sequencer.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/sequencer.c b/sequencer.c
index ab6f8a722d..f7be7d8be6 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -474,7 +474,7 @@ static int do_pick_commit(struct commit *commit, struct replay_opts *opts)
struct commit_message msg = { NULL, NULL, NULL, NULL, NULL };
char *defmsg = NULL;
struct strbuf msgbuf = STRBUF_INIT;
- int res, unborn = 0;
+ int res, unborn = 0, allow;
if (opts->no_commit) {
/*
@@ -624,14 +624,18 @@ static int do_pick_commit(struct commit *commit, struct replay_opts *opts)
msg.subject);
print_advice(res == 1, opts);
rerere(opts->allow_rerere_auto);
- } else {
- int allow = allow_empty(opts, commit);
- if (allow < 0)
- return allow;
- if (!opts->no_commit)
- res = run_git_commit(defmsg, opts, allow);
+ goto leave;
+ }
+
+ allow = allow_empty(opts, commit);
+ if (allow < 0) {
+ res = allow;
+ goto leave;
}
+ if (!opts->no_commit)
+ res = run_git_commit(defmsg, opts, allow);
+leave:
free_message(&msg);
free(defmsg);