kdb: Fix handling of kallsyms_symbol_next() return value
authorDaniel Thompson <[email protected]>
Mon, 2 Mar 2015 14:13:36 +0000 (14:13 +0000)
committerJason Wessel <[email protected]>
Wed, 6 Dec 2017 22:12:43 +0000 (16:12 -0600)
kallsyms_symbol_next() returns a boolean (true on success). Currently
kdb_read() tests the return value with an inequality that
unconditionally evaluates to true.

This is fixed in the obvious way and, since the conditional branch is
supposed to be unreachable, we also add a WARN_ON().

Reported-by: Dan Carpenter <[email protected]>
Signed-off-by: Daniel Thompson <[email protected]>
Cc: linux-stable <[email protected]>
Signed-off-by: Jason Wessel <[email protected]>
kernel/debug/kdb/kdb_io.c

index e74be38245adf732f34c55c0a676004f59870ba4..ed5d34925ad0617a40aeed3774b0e393aec03e99 100644 (file)
@@ -350,7 +350,7 @@ poll_again:
                        }
                        kdb_printf("\n");
                        for (i = 0; i < count; i++) {
-                               if (kallsyms_symbol_next(p_tmp, i) < 0)
+                               if (WARN_ON(!kallsyms_symbol_next(p_tmp, i)))
                                        break;
                                kdb_printf("%s ", p_tmp);
                                *(p_tmp + len) = '\0';