[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 1/2] hw/pci: fixed error flow in pci_qdev_ini
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH v4 1/2] hw/pci: fixed error flow in pci_qdev_init |
Date: |
Thu, 30 Oct 2014 14:33:11 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) |
Marcel Apfelbaum <address@hidden> writes:
> Verify return code for pci_add_option_rom.
>
> Signed-off-by: Marcel Apfelbaum <address@hidden>
> ---
> hw/pci/pci.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/hw/pci/pci.c b/hw/pci/pci.c
> index 6ce75aa..36226eb 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;
> }
Safe, because pci_add_option_rom() sets pci_dev->has_rom only on
success, and pci_unregister_device() cleans up the ROM only when
pci_has_rom is set.
Reviewed-by: Markus Armbruster <address@hidden>