On Sun, Dec 21, 2025 at 09:50:05PM -0800, Chandan Somani wrote:
> @@ -686,14 +684,16 @@ static void release_prop_array(Object *obj, const char 
> *name, void *opaque)
>      char *elem = *arrayptr;
>      int i;
>  
> -    if (!prop->arrayinfo->release) {
> -        return;
> +    if (prop->arrayinfo->release) {
> +        for (i = 0; i < *alenptr; i++) {
> +            Property elem_prop = array_elem_prop(obj, prop, name, elem);
> +            prop->arrayinfo->release(obj, NULL, &elem_prop);
> +            elem += prop->arrayfieldsize;
> +        }
>      }
>  
> -    for (i = 0; i < *alenptr; i++) {
> -        Property elem_prop = array_elem_prop(obj, prop, name, elem);
> -        prop->arrayinfo->release(obj, NULL, &elem_prop);
> -        elem += prop->arrayfieldsize;
> +    if (*arrayptr) {
> +        g_free(*arrayptr);
>      }

Optional cleanup to protect against use-after-free and similar issues:

*arrayptr = NULL;
*alenptr = 0;

Attachment: signature.asc
Description: PGP signature

Reply via email to