mirror of
https://github.com/git/git
synced 2024-10-28 19:25:47 +00:00
tests: fix a memory leak in test-parse-options.c
Fix a memory leak in t/helper/test-parse-options.c, we were not freeing the allocated "struct string_list" or its items. Let's move the declaration of the "list" variable into the cmd__parse_options() and release it at the end. Inc8ba163916
(parse-options: add OPT_STRING_LIST helper, 2011-06-09) the "list" variable was added, and later on inc8ba163916
(parse-options: add OPT_STRING_LIST helper, 2011-06-09) the "expect" was added. The "list" variable was last touched in2721ce21e4
(use string_list initializer consistently, 2016-06-13), but it was still left at the static scope, it's better to move it to the function for consistency. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
6a75658c0a
commit
c0b80e05f7
2 changed files with 7 additions and 1 deletions
|
@ -14,7 +14,6 @@ static int dry_run = 0, quiet = 0;
|
|||
static char *string = NULL;
|
||||
static char *file = NULL;
|
||||
static int ambiguous;
|
||||
static struct string_list list = STRING_LIST_INIT_NODUP;
|
||||
|
||||
static struct {
|
||||
int called;
|
||||
|
@ -107,6 +106,8 @@ int cmd__parse_options(int argc, const char **argv)
|
|||
NULL
|
||||
};
|
||||
struct string_list expect = STRING_LIST_INIT_NODUP;
|
||||
struct string_list list = STRING_LIST_INIT_NODUP;
|
||||
|
||||
struct option options[] = {
|
||||
OPT_BOOL(0, "yes", &boolean, "get a boolean"),
|
||||
OPT_BOOL('D', "no-doubt", &boolean, "begins with 'no-'"),
|
||||
|
@ -185,5 +186,9 @@ int cmd__parse_options(int argc, const char **argv)
|
|||
for (i = 0; i < argc; i++)
|
||||
show(&expect, &ret, "arg %02d: %s", i, argv[i]);
|
||||
|
||||
expect.strdup_strings = 1;
|
||||
string_list_clear(&expect, 0);
|
||||
string_list_clear(&list, 0);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
test_description='our own option parser'
|
||||
|
||||
TEST_PASSES_SANITIZE_LEAK=true
|
||||
. ./test-lib.sh
|
||||
|
||||
cat >expect <<\EOF
|
||||
|
|
Loading…
Reference in a new issue