From 08071e6858c4ac0252a56a923286c46087083712 Mon Sep 17 00:00:00 2001 From: Sparchatus Date: Wed, 27 Apr 2022 14:17:37 +0000 Subject: [PATCH] Bugfix NULL pointer dereference during pagefault error printing --- lib/aos/paging.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/aos/paging.c b/lib/aos/paging.c index ebc0ac7..68d3d14 100644 --- a/lib/aos/paging.c +++ b/lib/aos/paging.c @@ -124,8 +124,12 @@ static void pt_exception_handler(enum exception_type type, int subtype, break; } } - if (vaddr_reg == NULL || vaddr_reg->free) { - debug_printf("[pt_exception_handler] page_addr = %x, base = %x, size = %x\n", page_addr, vaddr_reg->base, vaddr_reg->size); + if (vaddr_reg == NULL) { + debug_printf("[pt_exception_handler] page_addr = 0x%x\n", page_addr); + USER_PANIC("[pt_exception_handler][ERROR] Page fault ouside valid virtual address space"); + } + if (vaddr_reg->free) { + debug_printf("[pt_exception_handler] page_addr = 0x%x, base = 0x%x, size = 0x%x\n", page_addr, vaddr_reg->base, vaddr_reg->size); USER_PANIC("[pt_exception_handler][ERROR] Page fault ouside allocated address space"); } if (!vaddr_reg->heap) {