• Alex Bennée's avatar
    plugins: fix memory leak while parsing options · 40258741
    Alex Bennée authored
    
    
    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: default avatarRichard Henderson <richard.henderson@linaro.org>
    Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@linaro.org>
    Signed-off-by: default avatarAlex Bennée <alex.bennee@linaro.org>
    Message-Id: <20230630180423.558337-21-alex.bennee@linaro.org>
    40258741