On Tue, Jan 06, 2026 at 03:30:18PM -0500, Stefan Hajnoczi wrote:
> 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;

Even better use  "g_clear_pointer(arrayptr, g_free)" 

> *alenptr = 0;



With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|


Reply via email to