summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcel Apfelbaum2014-10-27 18:34:41 +0100
committerMichael S. Tsirkin2014-11-02 12:44:12 +0100
commit178e785fb4507ec3462dc772bbe08303416ece47 (patch)
treecaa1085c2bf22ef277b66edc4cf7065cc382b4de
parent-machine vmport=off: Allow disabling of VMWare ioport emulation (diff)
downloadqemu-178e785fb4507ec3462dc772bbe08303416ece47.tar.gz
qemu-178e785fb4507ec3462dc772bbe08303416ece47.tar.xz
qemu-178e785fb4507ec3462dc772bbe08303416ece47.zip
hw/pci: fixed error flow in pci_qdev_init
Verify return code for pci_add_option_rom. Signed-off-by: Marcel Apfelbaum <marcel.a@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com>
-rw-r--r--hw/pci/pci.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/hw/pci/pci.c b/hw/pci/pci.c
index 6ce75aa940..36226eb2c8 100644
--- a/hw/pci/pci.c
+++ b/hw/pci/pci.c
@@ -1776,7 +1776,12 @@ static int pci_qdev_init(DeviceState *qdev)
pci_dev->romfile = g_strdup(pc->romfile);
is_default_rom = true;
}
- pci_add_option_rom(pci_dev, is_default_rom);
+
+ rc = pci_add_option_rom(pci_dev, is_default_rom);
+ if (rc != 0) {
+ pci_unregister_device(DEVICE(pci_dev));
+ return rc;
+ }
return 0;
}