]> git.proxmox.com Git - mirror_qemu.git/commit
plugins: fix memory leak while parsing options
authorAlex Bennée <alex.bennee@linaro.org>
Fri, 30 Jun 2023 18:04:05 +0000 (19:04 +0100)
committerAlex Bennée <alex.bennee@linaro.org>
Mon, 3 Jul 2023 11:51:58 +0000 (12:51 +0100)
commit402587419993d86638f1f81fc4e55625a320ad2f
tree2eedc98308f7256c4f348aa7fe8b685045e71e21
parent6d03226b42247b68ab2f0b3663e0f624335a4055
plugins: fix memory leak while parsing options

It was hard to track down this leak as it was an internal allocation
by glib and the backtraces did not give much away. The autofree was
freeing the allocation with g_free() but not taking care of the
individual strings. They should have been freed with g_strfreev()
instead.

Searching the glib source code for the correct string free function
led to:

  G_DEFINE_AUTO_CLEANUP_FREE_FUNC(GStrv, g_strfreev, NULL)

and indeed if you read to the bottom of the documentation page you
will find:

  typedef gchar** GStrv;

  A typedef alias for gchar**. This is mostly useful when used together with g_auto().

So fix up all the g_autofree g_strsplit case that smugly thought they
had de-allocation covered.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20230630180423.558337-21-alex.bennee@linaro.org>
12 files changed:
contrib/plugins/cache.c
contrib/plugins/drcov.c
contrib/plugins/execlog.c
contrib/plugins/hotblocks.c
contrib/plugins/hotpages.c
contrib/plugins/howvec.c
contrib/plugins/hwprofile.c
contrib/plugins/lockstep.c
tests/plugin/bb.c
tests/plugin/insn.c
tests/plugin/mem.c
tests/plugin/syscall.c