summaryrefslogtreecommitdiffstats
path: root/chardev
diff options
context:
space:
mode:
authorMarc-André Lureau2020-07-06 20:10:34 +0200
committerMarc-André Lureau2020-07-13 09:59:47 +0200
commit14a7a203063694ff932f3371ed93e97987dcafc0 (patch)
treebe4b97fbf145eb9cb68ac65297d11ef30a47a86f /chardev
parentchar-socket: initialize reconnect timer only when the timer doesn't start (diff)
downloadqemu-14a7a203063694ff932f3371ed93e97987dcafc0.tar.gz
qemu-14a7a203063694ff932f3371ed93e97987dcafc0.tar.xz
qemu-14a7a203063694ff932f3371ed93e97987dcafc0.zip
chardev: don't abort on attempt to add duplicated chardev
This is a regression from commit d2623129a7d ("qom: Drop parameter @errp of object_property_add() & friends"). (qemu) chardev-add id=null,backend=null (qemu) chardev-add id=null,backend=null Unexpected error in object_property_try_add() at /home/elmarco/src/qemu/qom/object.c:1166: attempt to add duplicate property 'null' to object (type 'container') That case is currently not covered in the test suite, but will be with the queued patch "char: fix use-after-free with dup chardev & reconnect". Fixes: d2623129a7dec1d3041ad1221dda1ca49c667532 Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com>
Diffstat (limited to 'chardev')
-rw-r--r--chardev/char.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/chardev/char.c b/chardev/char.c
index e5b43cb4b8..a0626d04d5 100644
--- a/chardev/char.c
+++ b/chardev/char.c
@@ -996,7 +996,11 @@ static Chardev *chardev_new(const char *id, const char *typename,
}
if (id) {
- object_property_add_child(get_chardevs_root(), id, obj);
+ object_property_try_add_child(get_chardevs_root(), id, obj,
+ &local_err);
+ if (local_err) {
+ goto end;
+ }
object_unref(obj);
}