diff options
Diffstat (limited to 'vl.c')
| -rw-r--r-- | vl.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/vl.c b/vl.c index 49778e7399..c389d24b2c 100644 --- a/vl.c +++ b/vl.c @@ -2207,10 +2207,12 @@ static int device_init_func(void *opaque, QemuOpts *opts, Error **errp) DeviceState *dev; dev = qdev_device_add(opts, errp); - if (!dev) { + if (!dev && *errp) { + error_report_err(*errp); return -1; + } else if (dev) { + object_unref(OBJECT(dev)); } - object_unref(OBJECT(dev)); return 0; } |