Patrick Georgi merged this change.

View Change

Approvals: build bot (Jenkins): Verified Lijian Zhao: Looks good to me, approved
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>
---
M src/device/device.c
1 file changed, 6 insertions(+), 0 deletions(-)

diff --git a/src/device/device.c b/src/device/device.c
index 1b4255b..17cd8f4 100644
--- a/src/device/device.c
+++ b/src/device/device.c
@@ -340,6 +340,9 @@
resource_t base;
base = round(bridge->base, bridge->align);

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

+ if (!bus)
+ return;
+
printk(BIOS_SPEW, "%s %s: base:%llx size:%llx align:%d gran:%d "
"limit:%llx\n", dev_path(bus->dev),
resource2str(bridge),

To view, visit change 33101. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I084906c33065eaa834f50c545efcfab620658ec9
Gerrit-Change-Number: 33101
Gerrit-PatchSet: 3
Gerrit-Owner: John Zhao <john.zhao@intel.com>
Gerrit-Reviewer: Balaji Manigandan <balaji.manigandan@intel.com>
Gerrit-Reviewer: John Zhao <john.zhao@intel.com>
Gerrit-Reviewer: Lijian Zhao <lijian.zhao@intel.com>
Gerrit-Reviewer: Martin Roth <martinroth@google.com>
Gerrit-Reviewer: Patrick Georgi <pgeorgi@google.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply@coreboot.org>
Gerrit-MessageType: merged