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 :|