summaryrefslogtreecommitdiffstats
path: root/Cargo.lock
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-08-02 21:47:18 +0200
committersalmonik <salmonik@tuta.io>2026-08-02 21:47:18 +0200
commit0187b802113a10a9ee99af48b811cd332c660a13 (patch)
treeb0873f7b2dcf6be1c575c8fe1919a72f041bba49 /Cargo.lock
parentv0.5.6: fault dumps carry kernel image base + stack backtrace (diff)
downloadrs-dos-0187b802113a10a9ee99af48b811cd332c660a13.tar.gz
rs-dos-0187b802113a10a9ee99af48b811cd332c660a13.zip
v0.5.7: allocator corruption guard + full register dump for real-hardware repro
The OptiPlex #GP (vec=13 in __rust_dealloc) frees a garbage pointer: the back-pointer at [ptr-8] is clobbered by the time the shell drops its Parsed struct. A blind store to the bogus block header was an opaque #GP — now it is a readable report: - dealloc validates the back-pointer (in-heap block, sane size, in-use) before trusting it; on failure it prints ptr/block/heap range, the memory around the block header, and the live stack chain, writes the crash band + crash.log, and halts (memory.rs: heap_guard_report). - fault dumps now carry the full register set (rax..rdi, rbx, r8..r15) so the next repro shows the exact freed ptr and clobbered value. - new 'corrupt' shell hook deliberately clobbers a live block's back-pointer to prove the guard fires (test-fault-style halt). Verified: test-msg/test-disk/test-fault pass; corrupt hook reports ptr=.. block=0xdeedbeef... with mem dump instead of #GP. rs-dos.img rebuilt with the release kernel.
Diffstat (limited to 'Cargo.lock')
-rw-r--r--Cargo.lock6
1 files changed, 3 insertions, 3 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 431db32..4cef15c 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -4,7 +4,7 @@ version = 4
4 4
5[[package]] 5[[package]]
6name = "rsdos" 6name = "rsdos"
7version = "0.5.5" 7version = "0.5.7"
8dependencies = [ 8dependencies = [
9 "rsnix", 9 "rsnix",
10 "shell", 10 "shell",
@@ -19,11 +19,11 @@ dependencies = [
19 19
20[[package]] 20[[package]]
21name = "rsnix" 21name = "rsnix"
22version = "0.5.5" 22version = "0.5.7"
23 23
24[[package]] 24[[package]]
25name = "shell" 25name = "shell"
26version = "0.5.5" 26version = "0.5.7"
27dependencies = [ 27dependencies = [
28 "rsdosedit", 28 "rsdosedit",
29 "rsnix", 29 "rsnix",