DF-0878 / run.log
=== DF-0878 harness: cd9660_rrip_loop + NM handler OOB read ===
record region: [0x8004948c0, 0x8004948d0) (16 bytes valid)
NM h.length: 255 (claimed)
NM handler wlen: 250 (h.length - 5)
valid name bytes in record: 3 ('foo')
adjacent-heap poison byte: 0x5a
--
[loop] dispatched NM handler: copied 250 bytes; 239 bytes read PAST pend (OOB)
--
OUTPUT (filename) bytes copied into outbuf:
666f6f00000000000000005a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a...
ascii: foo........ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ...
--
RESULT: 239 bytes read PAST the directory-record boundary (pend)
239 of those leaked bytes carry the heap sentinel 0x5a (kernel heap info disclosure)
Only 3 bytes ('foo') were legitimately inside the record.
BUG CONFIRMED: cd9660_rrip_loop dispatches the NM handler at
cd9660_rrip.c:515 with NO check that phead+h.length<=pend;
the plausibility check at :530 is lower-bound only.
HARNESS_RUN_EXIT=0