1.4 KiB
1.4 KiB
Test Case: Extended Inode Size Above OFF_MAX
Test ID: TC151-extended-inode-off-max
Objective
Rerun rejection of an extended inode with bit 63 set in i_size on the current
exact KLD, before open, read, mmap, or pager setup.
Fixture
Use images/extended-size-bit63.erofs. Evidence asserts a 64-byte regular
inode, exact NID/offset, i_size=0x8000000000000000, valid CRC, and image hash.
Compile read_probe and mmap_fault natively in FreeBSD.
Procedure
Mount the image, then run every acquisition twice:
./read_probe expect-error "$mnt/oversize.dat" 97
./read_probe expect-error "$mnt/oversize.dat" 97
set +e
truss -o /tmp/tc151-stat.truss stat "$mnt/oversize.dat"; stat_rc=$?
./mmap_fault "$mnt/oversize.dat" > /tmp/tc151-mmap1 2>&1; mmap1_rc=$?
./mmap_fault "$mnt/oversize.dat" > /tmp/tc151-mmap2 2>&1; mmap2_rc=$?
set -e
printf 'stat_rc=%d mmap_rc=%d,%d\n' "$stat_rc" "$mmap1_rc" "$mmap2_rc"
tail -20 /tmp/tc151-stat.truss
cat /tmp/tc151-mmap1 /tmp/tc151-mmap2
Record dmesg delta, remove outputs, unmount, detach, and unload the exact KLD at the end of G1.
Expected Results
- All direct opens and traced
statfail with errno 97 (EINTEGRITY). - Both mmap helpers exit 1 at
openwith the same error; no fd reaches mmap or pager setup. - No negative pager size, trap, panic, stale vnode, or cleanup residue occurs.
- Historical TC151 output cannot substitute for this current-KLD rerun.