From 57aec2a733b7672d1c53c73b70ca39a3ef2414c8 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Sun, 22 Sep 2024 17:16:01 +0300 Subject: [PATCH] Kernel: Validate pointer's when printing stack trace There was an kernel panic if stack trace contained uncanonical addresses. --- kernel/kernel/Debug.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/kernel/kernel/Debug.cpp b/kernel/kernel/Debug.cpp index 48bf8c3f..0d9189eb 100644 --- a/kernel/kernel/Debug.cpp +++ b/kernel/kernel/Debug.cpp @@ -41,6 +41,12 @@ namespace Debug BAN::Formatter::print(Debug::putchar, "\e[36mStack trace:\r\n"); while (frame) { + if (!PageTable::is_valid_pointer((vaddr_t)frame)) + { + derrorln("invalid pointer {H}", (vaddr_t)frame); + break; + } + if (PageTable::current().is_page_free((vaddr_t)frame & PAGE_ADDR_MASK)) { derrorln(" {} not mapped", frame);