[Pdbg] [PATCH v3 02/16] libpdbg: fix a bug in get_class_target_addr
Alistair Popple
alistair at popple.id.au
Thu Nov 8 12:10:49 AEDT 2018
The root device tree node does not have a class. Therefore this assert
was not useful as the strcmp() may cause a segfault comparing the root
node class.
Signed-off-by: Alistair Popple <alistair at popple.id.au>
Reviewed-by: Amitay Isaacs <amitay at ozlabs.org>
---
libpdbg/target.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/libpdbg/target.c b/libpdbg/target.c
index 317a6c6..975ecec 100644
--- a/libpdbg/target.c
+++ b/libpdbg/target.c
@@ -24,10 +24,9 @@ static struct pdbg_target *get_class_target_addr(struct pdbg_target *target, con
*addr += dt_get_address(target, 0, NULL);
target = target->parent;
- /* The should always be a parent. If there isn't it
- * means we traversed up the whole device tree and
- * didn't find a parent matching the given class. */
- assert(target);
+ /* The root node doesn't have an address space so it's
+ * an error in the device tree if we hit this. */
+ assert(target != dt_root);
}
return target;
--
2.11.0
More information about the Pdbg
mailing list