DragonFlyBSD Kernel Audit
DF-2920 / run.tmpfs.log
← back to finding ↓ download raw
=== DF-2920: beyond-EOF fault behavior on /tmp/df2920.tmpfs.bin ===
S0: pread() beyond EOF
  pread @70000 returned 0 (errno 0) -- EOF enforced for read()
S1: fresh mmap created AFTER truncate
  (file size 66767, probe offsets 70000 < in-buffer, 200000 > object)
  read @70000 (page kept for last buffer)    : value 0x00 (zero)
  read @200000 (page beyond object size)     : SIGBUS
  read @66800 (past EOF, inside EOF page)    : value 0x00 (zero)
S2: pre-existing mapping across truncate
  read @70000 BEFORE truncate                : value 0x5a (PRE-TRUNCATE PATTERN!)
  read @70000 AFTER truncate                 : value 0x00 (zero)
S3: WRITE beyond EOF via fresh mmap after truncate
  write @70000 : SUCCEEDED (no SIGBUS!)
  after extend, pread @70000: n=1 val=0x58 (stale mapping write became file data)
S4: strict race window (10 s): pattern@70000 observed with fstat-verified size < 70000
  cycles=123245 reader_iters=4331229 fstat_small=377953 confirm-zero=70302 confirm-SIGBUS=0 WINDOW-HITS(pattern twice while small)=307242
RC=0