sequencer: plug memory leaks for the option values

The sequencer is our attempt to lib-ify cherry-pick. Yet it behaves
like a one-shot command when it reads its configuration: memory is
allocated and released only when the command exits.

This is kind of okay for git-cherry-pick, which *is* a one-shot
command. All the work to make the sequencer its work horse was
done to allow using the functionality as a library function, though,
including proper clean-up after use.

To remedy that, take custody of the option values in question,
allocating and duping literal constants as needed and freeing them
at end.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Johannes Schindelin
2016-10-21 14:24:13 +02:00
committed by Junio C Hamano
parent 285abf561a
commit 03a4e260e2
3 changed files with 29 additions and 7 deletions

View File

@ -34,11 +34,11 @@ struct replay_opts {
int mainline;
const char *gpg_sign;
char *gpg_sign;
/* Merge strategy */
const char *strategy;
const char **xopts;
char *strategy;
char **xopts;
size_t xopts_nr, xopts_alloc;
/* Only used by REPLAY_NONE */