Furquan Shaikh has submitted this change. ( https://review.coreboot.org/c/coreboot/+/40475 )
Change subject: device: Add checks for NULL in device_const.c functions ......................................................................
device: Add checks for NULL in device_const.c functions
This change checks to ensure that device/path passed into any of the functions in device_const.c is not NULL. Since NULL is not expected to be passed into these functions, this change adds a die() call in case the assumption is broken.
Change-Id: I1ad8d2bcb9d0546104c5e065af1eeff331cdf96d Signed-off-by: Furquan Shaikh furquan@google.com Reviewed-on: https://review.coreboot.org/c/coreboot/+/40475 Tested-by: build bot (Jenkins) no-reply@coreboot.org Reviewed-by: Aaron Durbin adurbin@chromium.org Reviewed-by: Angel Pons th3fanbus@gmail.com --- M src/device/device_const.c 1 file changed, 15 insertions(+), 0 deletions(-)
Approvals: build bot (Jenkins): Verified Aaron Durbin: Looks good to me, approved Angel Pons: Looks good to me, approved
diff --git a/src/device/device_const.c b/src/device/device_const.c index c59c5e9..2e0ccc4 100644 --- a/src/device/device_const.c +++ b/src/device/device_const.c @@ -1,6 +1,7 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* This file is part of the coreboot project. */
+#include <assert.h> #include <console/console.h> #include <device/device.h> #include <device/path.h> @@ -86,6 +87,13 @@ { int equal = 0;
+ if (!path1 || !path2) { + assert(path1); + assert(path2); + /* Return 0 in case assert is considered non-fatal. */ + return 0; + } + if (path1->type != path2->type) return 0;
@@ -156,6 +164,13 @@ const struct bus *parent, const struct device_path *path) { DEVTREE_CONST struct device *child; + + if (!parent) { + assert(0); + /* Return NULL in case asserts are considered non-fatal. */ + return NULL; + } + for (child = parent->children; child; child = child->sibling) { if (path_eq(path, &child->path)) break;