vgabios: Check that the PCI BDF passed in is valid before using.
[seabios.git] / vgasrc / clext.c
index f08294acaddda18792fe12abd3e017aeafc2c90c..5468db35ef77d6e9e4099ed0669772527cb6abc0 100644 (file)
@@ -737,8 +737,9 @@ clext_init(void)
     dprintf(1, "cirrus init 2\n");
 
     u32 lfb_addr = 0;
-    if (CONFIG_VGA_PCI)
-        lfb_addr = (pci_config_readl(GET_GLOBAL(VgaBDF), PCI_BASE_ADDRESS_0)
+    int bdf = GET_GLOBAL(VgaBDF);
+    if (CONFIG_VGA_PCI && bdf >= 0)
+        lfb_addr = (pci_config_readl(bdf, PCI_BASE_ADDRESS_0)
                     & PCI_BASE_ADDRESS_MEM_MASK);
     SET_VGA(VBE_framebuffer, lfb_addr);
     u16 totalmem = cirrus_get_memsize();