Subject: Re: [PATCH 2/9] test-tool path-utils: fix a memory leak

From: Ævar Arnfjörð Bjarmason <[email-masked]>
Date: Fri, 01 Jul 2022 11:24:56 +0200

On Fri, Jul 01 2022, Eric Sunshine wrote:

> On Thu, Jun 30, 2022 at 7:51 PM Ævar Arnfjörð Bjarmason
> <[email-masked]> wrote:
>> Fix a memory leak in "test-tool path-utils", as a result we can mark
>> the corresponding test as passing with SANITIZE=leak using
>> "TEST_PASSES_SANITIZE_LEAK=true".
>>
>> Signed-off-by: Ævar Arnfjörð Bjarmason <[email-masked]>
>> ---
>> diff --git a/t/helper/test-path-utils.c b/t/helper/test-path-utils.c
>> @@ -294,11 +294,13 @@ static int protect_ntfs_hfs_benchmark(int argc, const char **argv)
>>  int cmd__path_utils(int argc, const char **argv)
>>  {
>>         if (argc == 3 && !strcmp(argv[1], "normalize_path_copy")) {
>> -               char *buf = xmallocz(strlen(argv[2]));
>> +               char *to_free = NULL;
>> +               char *buf = to_free = xmallocz(strlen(argv[2]));
>
> Is there a non-obvious reason that `to_free` is initialized to NULL
> before being immediately overwritten with the result of xmallocz()?
>
> Also, pure nit, but it may be a bit more idiomatic (though I could be
> wrong) written as:
>
>     char *buf, *to_free;
>     buf = to_free = xmallocz(...);

Thanks, I'll change it to be like that. I wouldn't put "= NULL" there
normally, that part snuck in from some earlier version, and escaped my
own pre-review.