On Fri, 2013-03-15 at 11:29 +0300, Dan Carpenter wrote: > Hello Matthew Garrett, > > The patch dd5fc854de5f: "EFI: Stash ROMs if they're not in the PCI > BAR" from Dec 5, 2012, leads to the following warning: > "arch/x86/boot/compressed/eboot.c:290 setup_efi_pci() > error: potentially dereferencing uninitialized 'pci_handle'." > > 254 static efi_status_t setup_efi_pci(struct boot_params *params) > 255 { > 256 efi_pci_io_protocol *pci; > 257 efi_status_t status; > 258 void **pci_handle; > 259 efi_guid_t pci_proto = EFI_PCI_IO_PROTOCOL_GUID; > 260 unsigned long nr_pci, size = 0; > 261 int i; > 262 struct setup_data *data; > 263 > 264 data = (struct setup_data *)(unsigned long)params->hdr.setup_data; > 265 > 266 while (data && data->next) > 267 data = (struct setup_data *)(unsigned long)data->next; > 268 > 269 status = efi_call_phys5(sys_table->boottime->locate_handle, > 270 EFI_LOCATE_BY_PROTOCOL, &pci_proto, > 271 NULL, &size, pci_handle); > ^^^^^^^^^^ > This hasn't been initialized yet. True. It probably doesn't *matter* because the size is zero so the firmware is just going to ignore the pointer anyway. Although in that case I wonder why we couldn't have just passed NULL. Perhaps we expected that some firmware might do some validation on the pointer before getting to the size check? -- dwmw2
Attachment:
smime.p7s
Description: S/MIME cryptographic signature