system/qdev: Remove pointless NULL check in qdev_device_add_from_qdict
Coverity reported a unnecessary NULL check:
qemu/system/qdev-monitor.c: 720 in qdev_device_add_from_qdict()
683 /* create device */
684 dev = qdev_new(driver);
...
719 err_del_dev:
>>> CID 1590192: Null pointer dereferences (REVERSE_INULL)
>>> Null-checking "dev" suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
720 if (dev) {
721 object_unparent(OBJECT(dev));
722 object_unref(OBJECT(dev));
723 }
724 return NULL;
725 }
Indeed, unlike qdev_try_new() which can return NULL,
qdev_new() always returns a heap pointer (or aborts).
Remove the unnecessary assignment and check.
Fixes: f3a8505656 ("qdev/qbus: add hidden device support")
Resolves: Coverity CID 1590192 (Null pointer dereferences)
Suggested-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
851dcb8355
commit
677bb509bf
1 changed files with 4 additions and 5 deletions
|
|
@ -628,7 +628,7 @@ DeviceState *qdev_device_add_from_qdict(const QDict *opts,
|
|||
DeviceClass *dc;
|
||||
const char *driver, *path;
|
||||
char *id;
|
||||
DeviceState *dev = NULL;
|
||||
DeviceState *dev;
|
||||
BusState *bus = NULL;
|
||||
QDict *properties;
|
||||
|
||||
|
|
@ -717,10 +717,9 @@ DeviceState *qdev_device_add_from_qdict(const QDict *opts,
|
|||
return dev;
|
||||
|
||||
err_del_dev:
|
||||
if (dev) {
|
||||
object_unparent(OBJECT(dev));
|
||||
object_unref(OBJECT(dev));
|
||||
}
|
||||
object_unparent(OBJECT(dev));
|
||||
object_unref(OBJECT(dev));
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue