Files
ViperOS/VKernel
TermiNexus ec57603bb3 fix(vkernel): 分配器与页表池加固(块头魔数/双链校验、池边界与哨兵),并清理定位用临时探针
mm: memory_block 加 magic(塞进原有 padding,布局仍 32B);allocate/free/merge 前校验块头(magic、size==2^order、state、prev/next 在堆内且 8 字节对齐),坏块只报不改并限流;free() 增加堆范围校验;slab 建页前校验 total 与地址范围自洽(防 uint64 下溢 + uint16 截断导致成片写页外);NO FREE BLOCK 附带 used/free/total。paging: 页表池按调用者给的真实 buf_size 计算可用页数(此前丢掉 buf_size、上限硬编码 PT_POOL_PAGES ⇒ 池会发到缓冲之外,把页表内容盖到 buddy 空闲块头);加 pt_pool_magic/pt_pool_limit 哨兵与 CORRUPT/EXHAUSTED fail-fast。idt: #GP 分支补打 rax(rax+0x10 即触发访存地址),与 #PF 分支同口径。同时移除本轮定位用临时探针(elf.vp/isr.s/main.vp 恢复原状)。
2026-10-15 12:47:39 +08:00
..