src/device: Prevent attack on null pointer dereference

Clang Static Analyzer version 8.0.0 detects access to field dev results
in a dereference of a null pointer which is loaded from variable bus.
Add sanity check for pointer bus to prevent null pointer dereference.

TEST=Built and boot up to kernel.

Change-Id: I084906c33065eaa834f50c545efcfab620658ec9
Signed-off-by: John Zhao <john.zhao@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/33101
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Lijian Zhao <lijian.zhao@intel.com>
This commit is contained in:
John Zhao 2019-05-29 18:12:01 -07:00 committed by Patrick Georgi
parent 62ddc491cf
commit 2deb5fb3b0
1 changed files with 6 additions and 0 deletions

View File

@ -340,6 +340,9 @@ static void compute_resources(struct bus *bus, struct resource *bridge,
resource_t base; resource_t base;
base = round(bridge->base, bridge->align); base = round(bridge->base, bridge->align);
if (!bus)
return;
printk(BIOS_SPEW, "%s %s: base: %llx size: %llx align: %d gran: %d" printk(BIOS_SPEW, "%s %s: base: %llx size: %llx align: %d gran: %d"
" limit: %llx\n", dev_path(bus->dev), resource2str(bridge), " limit: %llx\n", dev_path(bus->dev), resource2str(bridge),
base, bridge->size, bridge->align, base, bridge->size, bridge->align,
@ -484,6 +487,9 @@ static void allocate_resources(struct bus *bus, struct resource *bridge,
resource_t base; resource_t base;
base = bridge->base; base = bridge->base;
if (!bus)
return;
printk(BIOS_SPEW, "%s %s: base:%llx size:%llx align:%d gran:%d " printk(BIOS_SPEW, "%s %s: base:%llx size:%llx align:%d gran:%d "
"limit:%llx\n", dev_path(bus->dev), "limit:%llx\n", dev_path(bus->dev),
resource2str(bridge), resource2str(bridge),