From b0b51c3955dab267670b48055cc419bc29c60c88 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Tue, 2 Feb 2021 16:05:18 +0100 Subject: [PATCH] Kernel: Limit the size of stack traces Let's not allow infinitely long stack traces. Cap it at 4096 frames. --- Kernel/Arch/i386/CPU.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Kernel/Arch/i386/CPU.cpp b/Kernel/Arch/i386/CPU.cpp index 7dc7f082c6..e147a644e0 100644 --- a/Kernel/Arch/i386/CPU.cpp +++ b/Kernel/Arch/i386/CPU.cpp @@ -1161,9 +1161,10 @@ Vector Processor::capture_stack_trace(Thread& thread, size_t max_frames auto walk_stack = [&](FlatPtr stack_ptr) { + static constexpr size_t max_stack_frames = 4096; stack_trace.append(eip); size_t count = 1; - while (stack_ptr) { + while (stack_ptr && stack_trace.size() < max_stack_frames) { FlatPtr retaddr; count++;