From 3efe54169e1bcaf63c304480d5fbf111136b0899 Mon Sep 17 00:00:00 2001 From: Philipp Oppermann Date: Tue, 18 Apr 2017 18:13:05 +0200 Subject: [PATCH] Provoke a stack overflow, which still causes a boot loop --- src/lib.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 3e9be37..403c9f4 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -58,10 +58,13 @@ pub extern "C" fn rust_main(multiboot_information_address: usize) { // invoke a breakpoint exception x86_64::instructions::interrupts::int3(); - // trigger a page fault - unsafe { - *(0xdeadbeaf as *mut u64) = 42; - }; + fn stack_overflow() { + stack_overflow(); // for each recursion, the return address is pushed + } + + // trigger a stack overflow + stack_overflow(); + println!("It did not crash!"); loop {}