dm: dump.c: Fix segfault when entry->of_match is NULL
authorOvidiu Panait <ovpanait@gmail.com>
Sun, 5 Apr 2020 16:47:40 +0000 (19:47 +0300)
committerSimon Glass <sjg@chromium.org>
Thu, 9 Apr 2020 21:12:34 +0000 (15:12 -0600)
Currently, dm drivers command produces a segfault:
=> dm drivers
Driver                Compatible
--------------------------------
Segmentation fault (core dumped)

This is caused by a NULL pointer dereference of entry->of_match.
Add a check to prevent this.

Signed-off-by: Ovidiu Panait <ovpanait@gmail.com>
Cc: Sean Anderson <seanga2@gmail.com>
Cc: Simon Glass <sjg@chromium.org>
drivers/core/dump.c

index e73ebeabcc9a6a8d2bb876d4b1390b8e9fc976bd..b5046398d4c6664ca4edd42ea1ec148b8befc3e2 100644 (file)
@@ -107,7 +107,8 @@ void dm_dump_drivers(void)
        puts("Driver                Compatible\n");
        puts("--------------------------------\n");
        for (entry = d; entry < d + n_ents; entry++) {
-               for (match = entry->of_match; match->compatible; match++)
+               for (match = entry->of_match;
+                    match && match->compatible; match++)
                        printf("%-20.20s  %s\n",
                               match == entry->of_match ? entry->name : "",
                               match->compatible);