Re: [PATCH 2/9] test-tool path-utils: fix a memory leak
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Jul 1, 2022, 04:27 UTC
- Message-ID
- <CAPig+cT5jETAi5extz2tHwSzp4a=b7qqaK0S=mcjQr1m_1jAQQ@mail.gmail.com>
- In-Reply-To
- <patch-2.9-06b2dcf4f12-20220630T180129Z-avarab@gmail.com>
On Thu, Jun 30, 2022 at 7:51 PM Ævar Arnfjörð Bjarmason <avarab@gmail.com> wrote:
Show 14 quoted lines
> 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 <avarab@gmail.com>
> ---
> 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(...);