DF-2360
Unbounded f_reg()/f_rm() indexing crashes DDB: NULL-deref in Grp7 dispatch and wild-pointer deref via REX.R into 8-element tables
Summary
f_reg() and f_rm() macros (:908-909) add 8 when REX_R/REX_B set yielding 0-15 yet used to index lookup tables holding only 8 entries (db_seg_reg db_Grp1..9 db_Esc* db_Grp7_11_*) with no bounds check. Independently of REX Grp7 dispatch indexes db_Grp7_11[] which contains literal NULL pointers (lines 208-209). Disassembling 0f 01 db dereferences NULL+offset faults DDB. Disassembling 44 8c c0 (REX.R + mov sreg) reads db_seg_reg[8] (adjacent int reinterpreted as pointer) and dereferences it also faulting DDB. Requires DDB access (console/serial debugger). Impact: DDB itself takes page fault debugger hangs or machine reboots. Debugger correctness/reliability defect can turn recoverable debug session into forced reboot.
No comments yet.