Message ID | 1479901791-144760-1-git-send-email-arei.gonglei@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Ping... Anybody can pick it up? Thanks! Regards, -Gonglei > -----Original Message----- > From: Gonglei (Arei) > Sent: Wednesday, November 23, 2016 7:50 PM > To: qemu-devel@nongnu.org > Cc: afaerber@suse.de; Gonglei (Arei) > Subject: [PATCH for-2.8] qom: fix qemu_opts leak when hot unplug object > > If we assign the user crateable object in QEMU command > line, then the correspeonding qemu_opts for the object > doesn't be deleted, which will produce a wrong result. > > If we hot unplug the object by object_del, the qemu_opts > will be leaked, ann then if we hot plug the object using > the same id by object_add, we will get a error: > "Duplicate ID 'xxxx' for object" > > Let's del the qemu opts after the object created, just > likes what the hmp_object_add function does. > > Signed-off-by: Gonglei <arei.gonglei@huawei.com> > --- > qom/object_interfaces.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/qom/object_interfaces.c b/qom/object_interfaces.c > index ded4d84..b8fe9db 100644 > --- a/qom/object_interfaces.c > +++ b/qom/object_interfaces.c > @@ -189,6 +189,10 @@ int user_creatable_add_opts_foreach(void *opaque, > QemuOpts *opts, Error **errp) > return -1; > } > object_unref(obj); > + > + qemu_opts_del(opts); > + opts = NULL; > + > return 0; > } > > -- > 1.8.3.1 >
diff --git a/qom/object_interfaces.c b/qom/object_interfaces.c index ded4d84..b8fe9db 100644 --- a/qom/object_interfaces.c +++ b/qom/object_interfaces.c @@ -189,6 +189,10 @@ int user_creatable_add_opts_foreach(void *opaque, QemuOpts *opts, Error **errp) return -1; } object_unref(obj); + + qemu_opts_del(opts); + opts = NULL; + return 0; }
If we assign the user crateable object in QEMU command line, then the correspeonding qemu_opts for the object doesn't be deleted, which will produce a wrong result. If we hot unplug the object by object_del, the qemu_opts will be leaked, ann then if we hot plug the object using the same id by object_add, we will get a error: "Duplicate ID 'xxxx' for object" Let's del the qemu opts after the object created, just likes what the hmp_object_add function does. Signed-off-by: Gonglei <arei.gonglei@huawei.com> --- qom/object_interfaces.c | 4 ++++ 1 file changed, 4 insertions(+)