On 6/23/23 14:20, Alex Bennée wrote:
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.

Message-Id: <20230519170454.2353945-3-alex.ben...@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org>
Signed-off-by: Alex Bennée <alex.ben...@linaro.org>
---

Reviewed-by: Richard Henderson <richard.hender...@linaro.org>


r~

Reply via email to