diff options
author | Furquan Shaikh <furquan@google.com> | 2020-04-16 23:13:28 -0700 |
---|---|---|
committer | Furquan Shaikh <furquan@google.com> | 2020-04-22 18:01:52 +0000 |
commit | 86803784d3a459170a1e73dfbd1ecdcfc0d853d5 (patch) | |
tree | d3012ba615714b7974aab6d8ddd9f86115f4dd46 | |
parent | 4cd150f5b530a88aa2778b1f1167e1c191186718 (diff) | |
download | coreboot-86803784d3a459170a1e73dfbd1ecdcfc0d853d5.tar.xz |
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>
-rw-r--r-- | src/device/device_const.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/device/device_const.c b/src/device/device_const.c index c59c5e9b69..2e0ccc4c3b 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 @@ static int path_eq(const struct device_path *path1, { 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 @@ DEVTREE_CONST struct device *find_dev_path( 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; |