[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-arm] [Qemu-devel] [PATCH] hw/arm/virt: fix cpu object referenc
Re: [Qemu-arm] [Qemu-devel] [PATCH] hw/arm/virt: fix cpu object reference leak
Thu, 16 Feb 2017 16:11:14 +0100
On Thu, 16 Feb 2017 14:18:05 +0000
Peter Maydell <address@hidden> wrote:
> On 16 February 2017 at 13:57, Igor Mammedov <address@hidden> wrote:
> > object_new(FOO) returns an object with ref_cnt == 1
> > and following
> > object_property_set_bool(cpuobj, true, "realized", NULL)
> > set parent of cpuobj to '/machine/unattached' which makes
> > ref_cnt == 2.
> > Since machvirt_init() doesn't take ownership of cpuobj
> > returned by object_new() it should explicitly drop
> > reference to cpuobj when dangling pointer is about to
> > go out of scope like it's done pc_new_cpu() to avoid
> > object leak.
> I've always found the object reference semantics somewhat
> confusing (why does realizing a device add a reference,
> for instance?). Do we document them anywhere?
I'm not aware of a place where it's documented.
currently device_realize() sets parent thus increasing
ref counter only if device creator haven't set parent
> -- PMM