Marc-André Lureau <marcandre.lur...@redhat.com> writes:

> Hi
>
> On Mon, Oct 30, 2023 at 5:37 PM Markus Armbruster <arm...@redhat.com> wrote:
>>
>> When dump_init()'s check for non-zero @length fails, dump_cleanup()
>> passes null s->string_table_buf to g_array_unref(), which spews "GLib:
>> g_array_unref: assertion 'array' failed" to stderr.
>>
>> Guard the g_array_unref().
>>
>> Signed-off-by: Markus Armbruster <arm...@redhat.com>
>
> Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com>
>
>> ---
>>  dump/dump.c | 4 +++-
>>  1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/dump/dump.c b/dump/dump.c
>> index a1fad17f9c..d8ea364af2 100644
>> --- a/dump/dump.c
>> +++ b/dump/dump.c
>> @@ -100,7 +100,9 @@ static int dump_cleanup(DumpState *s)
>>      memory_mapping_list_free(&s->list);
>>      close(s->fd);
>>      g_free(s->guest_note);
>> -    g_array_unref(s->string_table_buf);
>> +    if (s->string_table_buf) {
>> +        g_array_unref(s->string_table_buf);
>> +    }
>
> or:
> g_clear_pointer(&s->string_table_buf, g_array_unref)

Since dump_cleanup() doesn't clear any of the other members of @s, I'll
stick to g_array_unref() for consistency and simplicity.

>>      s->guest_note = NULL;
>>      if (s->resume) {
>>          if (s->detached) {
>> --
>> 2.41.0
>>

Thanks!


Reply via email to