#!/bin/sh
# DF-0391 run -- pf_fragcache m_dup NULL deref path-reachability trigger.
# REQUIRES: root (raw socket), pf.ko loaded, scrub-in-on-lo0 fragment crop rule.
# Expected (BUG, under m_dup NULL): kernel panic in m_adj NULL+deref
# Expected (live, usual case): path reached (pfctl normalize/fragment counters
#                              increment), no panic, mbuf-pressure warnings.
# See README.md for full setup.
set -e
[ "$(id -u)" = "0" ] || { echo "must run as root"; exit 2; }
pfctl -s rules 2>&1 | grep -q 'fragment crop' || {
    echo "PF scrub fragcrop rule not loaded; create /etc/pf-0391.conf first"
    exit 2
}
./df_0391_fragcache
