Messages in this thread Patch in this message | | | From | Cengiz Can <> | Subject | [PATCH] kdb: prevent possible null deref in kdb_msg_write | Date | Mon, 29 Jun 2020 16:59:24 +0300 |
| |
`kdb_msg_write` operates on a global `struct kgdb_io *` called `dbg_io_ops`.
Although it is initialized in `debug_core.c`, there's a null check in `kdb_msg_write` which implies that it can be null whenever we dereference it in this function call.
Coverity scanner caught this as CID 1465042.
I have modified the function to bail out if `dbg_io_ops` is not properly initialized.
Signed-off-by: Cengiz Can <cengiz@kernel.wtf> --- kernel/debug/kdb/kdb_io.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/kernel/debug/kdb/kdb_io.c b/kernel/debug/kdb/kdb_io.c index 683a799618ad..85e579812458 100644 --- a/kernel/debug/kdb/kdb_io.c +++ b/kernel/debug/kdb/kdb_io.c @@ -549,14 +549,15 @@ static void kdb_msg_write(const char *msg, int msg_len) if (msg_len == 0) return; - if (dbg_io_ops) { - const char *cp = msg; - int len = msg_len; + if (!dbg_io_ops) + return; - while (len--) { - dbg_io_ops->write_char(*cp); - cp++; - } + const char *cp = msg; + int len = msg_len; + + while (len--) { + dbg_io_ops->write_char(*cp); + cp++; } for_each_console(c) { -- 2.27.0
| |