Messages in this thread Patch in this message | | | From | George Prekas <> | Subject | [PATCH v2] scripts/gdb: fix list_for_each | Date | Thu, 24 Sep 2020 09:20:56 -0500 |
| |
If the list is uninitialized (next pointer is NULL), list_for_each gets stuck in an infinite loop. Print a message and treat list as empty.
Signed-off-by: George Prekas <prekageo@amazon.com> --- scripts/gdb/linux/lists.py | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/scripts/gdb/linux/lists.py b/scripts/gdb/linux/lists.py index c487ddf09d38..bae4d70b7eae 100644 --- a/scripts/gdb/linux/lists.py +++ b/scripts/gdb/linux/lists.py @@ -27,6 +27,11 @@ def list_for_each(head): raise TypeError("Must be struct list_head not {}" .format(head.type))
+ if head['next'] == 0: + gdb.write("list_for_each: Uninitialized list '{}' treated as empty\n" + .format(head.address)) + return + node = head['next'].dereference() while node.address != head.address: yield node.address -- 2.16.6
| |