TermiNexus
6ecd891f64
fix(desk): 清空共享区槽表并按版本拒绝旧 app
现场:所有窗口消失、任务栏多出若干图标,点击后 explorer 以
[0E] rip=0x4061e8 cr2=0x1207e8fff 缺页退出。
原因:desk_format 只清 DeskHeader,没有清 0x100 起的 WinSlot 表。
DESK_SHM_SIZE 从 8MB 提到 32MB 后,mm.malloc 拿到的内存不再恰好全零
(混入 bootloader/固件遗留数据),随机 used/active 被当成窗口,
合成时按垃圾 fb_off 越界读像素。
- desk_format 先 memset 整个控制区(0x000000 ~ 0x200000)
- 分配槽位时整槽清零,避免复用残留
- DESK_VERSION 1 → 2,desk_ready 校验版本:
旧 app 按旧 WinSlot 偏移读写会写坏共享区,现在直接拒绝挂载
- render_window_rows 校验 fb_off 范围,坏槽位只跳过,不再拖崩合成器
2026-10-27 12:52:23 +08:00
..
2026-07-30 16:34:26 +08:00
2026-10-27 12:52:23 +08:00
2026-10-16 21:37:58 +08:00
2026-10-26 22:40:07 +08:00
2026-10-16 19:33:46 +08:00
2026-10-16 19:11:44 +08:00
2026-10-16 19:17:39 +08:00
2026-10-16 18:40:14 +08:00
2026-10-16 19:33:46 +08:00
2026-10-26 23:04:25 +08:00
2026-10-17 16:49:37 +08:00