DF-5381 / run.log
===== RUN 1 ===== [DF5381] engine-allocated 32 x 200-byte DMA objects (page_offset_end=1936) [DF5381] neighbours pcA=0xfffff80116f36600 pcB=0xfffff80116f36800 chunk_gap=512 (object extent=200) [DF5381] T1 PASS cross-object OOB READ (read pcB's bytes via pcA offset 512) [DF5381] T2 PASS cross-object OOB WRITE (planted 16 bytes into pcB via pcA offset 512) [DF5381] T2b PASS write past object extent offset=200 accepted (page_offset_end=1936) [DF5381] T3 PASS cross-object OOB ZERO via usbd_frame_zero [DF5381] T4 stale kernel-heap bytes (chunk tail of pcB): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [DF5381] T4 INCONCLUSIVE zero bytes [DF5381] T4b kernel-heap bytes behind freed chunk (kfree zeroed): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [DF5381] T5 get_page(offset=0xFFFFFF00) -> buffer=pcA0 length=0xffffffff (no bound) [DF5381] T5 PASS engine hands out wild KVA +4GB-256 and length=UINT32_MAX [DF5381] T6 get_page(multiseg, offset=49152) -> physaddr=0xdeadbeef0000 (loaded extent=8192 bytes) length=4096 [DF5381] T6 PASS page-array walked 12 pages past a 2-page load; stale physaddr returned verbatim [DF5381] T7 SKIP foreign-page read (unguarded variant = kernel panic, see panic.txt) [DF5381] RESULT 6/7 primitive tests passed EXIT=0 ===== RUN 2 ===== [DF5381] engine-allocated 32 x 200-byte DMA objects (page_offset_end=1424) [DF5381] neighbours pcA=0xfffff80116f36600 pcB=0xfffff80116f36800 chunk_gap=512 (object extent=200) [DF5381] T1 PASS cross-object OOB READ (read pcB's bytes via pcA offset 512) [DF5381] T2 PASS cross-object OOB WRITE (planted 16 bytes into pcB via pcA offset 512) [DF5381] T2b PASS write past object extent offset=200 accepted (page_offset_end=1424) [DF5381] T3 PASS cross-object OOB ZERO via usbd_frame_zero [DF5381] T4 stale kernel-heap bytes (chunk tail of pcB): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [DF5381] T4 INCONCLUSIVE zero bytes [DF5381] T4b kernel-heap bytes behind freed chunk (kfree zeroed): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [DF5381] T5 get_page(offset=0xFFFFFF00) -> buffer=pcA0 length=0xffffffff (no bound) [DF5381] T5 PASS engine hands out wild KVA +4GB-256 and length=UINT32_MAX [DF5381] T6 get_page(multiseg, offset=49152) -> physaddr=0xdeadbeef0000 (loaded extent=8192 bytes) length=4096 [DF5381] T6 PASS page-array walked 12 pages past a 2-page load; stale physaddr returned verbatim [DF5381] T7 SKIP foreign-page read (unguarded variant = kernel panic, see panic.txt) [DF5381] RESULT 6/7 primitive tests passed EXIT=0 ===== RUN 3 ===== [DF5381] engine-allocated 32 x 200-byte DMA objects (page_offset_end=1936) [DF5381] neighbours pcA=0xfffff80116f36600 pcB=0xfffff80116f36800 chunk_gap=512 (object extent=200) [DF5381] T1 PASS cross-object OOB READ (read pcB's bytes via pcA offset 512) [DF5381] T2 PASS cross-object OOB WRITE (planted 16 bytes into pcB via pcA offset 512) [DF5381] T2b PASS write past object extent offset=200 accepted (page_offset_end=1936) [DF5381] T3 PASS cross-object OOB ZERO via usbd_frame_zero [DF5381] T4 stale kernel-heap bytes (chunk tail of pcB): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [DF5381] T4 INCONCLUSIVE zero bytes [DF5381] T4b kernel-heap bytes behind freed chunk (kfree zeroed): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [DF5381] T5 get_page(offset=0xFFFFFF00) -> buffer=pcA0 length=0xffffffff (no bound) [DF5381] T5 PASS engine hands out wild KVA +4GB-256 and length=UINT32_MAX [DF5381] T6 get_page(multiseg, offset=49152) -> physaddr=0xdeadbeef0000 (loaded extent=8192 bytes) length=4096 [DF5381] T6 PASS page-array walked 12 pages past a 2-page load; stale physaddr returned verbatim [DF5381] T7 SKIP foreign-page read (unguarded variant = kernel panic, see panic.txt) [DF5381] RESULT 6/7 primitive tests passed EXIT=0