feat: SKEL skeleton instrumentation - designed-but-unimplemented paths panic
- hypercall.c: 5 Phase 1.3 stubs -> HCALL-E01..E05 panic (no NOSYS return) - drr_stub.c: snapshot alloc fail -> DRR-E01; new skeletons DRR-E02 root key seal, DRR-E03 task kill crypto erase, DRR-E04/E05 segment/system rollback, DRR-E06/E07 driver recovery ops dispatch - sched.c: enable fail -> SCH-E02 panic (no silent demo skip) - dkm/kernel_api.c: D1 hot-unload DKM-E01, D2 bare code loader DKM-E02, SIPI AP wake DKM-E03 skeletons - virtio_net tx/rx stubs -> VNET-E01/E02; ath9k tx stub -> ATH-E01; xhci port reset -> XHC-E01; nvme MSI/MSI-X fail -> NVME-E01..E03 (no silent polling downgrade); e1000 MAC fallback -> E1K-E01 - pe_shim unimpl API -> PE-E01; PE ordinal import -> PE-E02 - kernel/main.c: lib sync / vscode install fail -> LNX-E01/E02 - NEW brand/brand.c (E1 boot anim BRAND-E01, E2 time egg BRAND-E02) and pkg/pkg.c (pacman skeleton PKG-E01..03), wired into UTSM MAKEFILE - Deliberate design-internal fallbacks kept and documented (VMX skip, bzImage skip, KDE fallback, boot-module fallback, apic->PIC route)
This commit is contained in:
+2
-1
@@ -1327,10 +1327,11 @@ static int dsk_load_elf(u8 *data, u32 size, void **entry_out) {
|
||||
if (rela_off && rela_sz) {
|
||||
/* P0 修复: 边界检查 rela_off 和 rela_off+rela_sz 必须在 [min_vaddr, min_vaddr+isize) 内 */
|
||||
if (rela_off < min_vaddr || rela_off >= min_vaddr + isize) {
|
||||
logl("[DSK] ELF: rela_off out of bounds, skipping reloc");
|
||||
/* 严格错误策略:重定位表越界 = 镜像损坏,零降级 panic */
|
||||
logh("[DSK] ELF: rela_off=", rela_off);
|
||||
logh("[DSK] ELF: min_vaddr=", min_vaddr);
|
||||
logh("[DSK] ELF: isize=", isize);
|
||||
dsk_fatal("ELF-E01 RELA OUT OF BOUNDS");
|
||||
continue;
|
||||
}
|
||||
if (rela_off + rela_sz > min_vaddr + isize) {
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user