Hi Stefan, On Wed, 30 May 2018, Stefan Beller wrote: > Signed-off-by: Stefan Beller <sbeller@xxxxxxxxxx> > --- > > This was a deliberate oversight in f241ff0d0a9 (prepare the builtins for a > libified merge_recursive(), 2016-07-26) No, it was not deliberate. It was inadvertent, most likely ;-) > sequencer.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/sequencer.c b/sequencer.c > index 72b4d8ecae3..5c93586cc1c 100644 > --- a/sequencer.c > +++ b/sequencer.c > @@ -1771,8 +1771,10 @@ static int do_pick_commit(enum todo_command command, struct commit *commit, > else if (!opts->strategy || !strcmp(opts->strategy, "recursive") || command == TODO_REVERT) { > res = do_recursive_merge(base, next, base_label, next_label, > &head, &msgbuf, opts); > - if (res < 0) > + if (res < 0) { > + free(author); > return res; Why not `goto leave;` instead? I wonder what is happening to the commit message: can we be certain at this point that it was not set yet? And also: should we call `update_abort_safety_file()`? Ciao, Dscho > + } > res |= write_message(msgbuf.buf, msgbuf.len, > git_path_merge_msg(), 0); > } else { > -- > 2.17.1.1185.g55be947832-goog > >