#!/bin/sh
# DF-2576 trigger (root). IMPORTANT ordering: net.filters_default_to_accept is
# a base-kernel sysctl (sys/net/pfil.c) that exists before ipfw3 loads, and it
# is read at MOD_LOAD time (ctx_init_dispatch, ip_fw3.c:1425) to decide the
# default rule's action. Set it to 1 BEFORE kldload so the firewall does not
# lock out ssh (default-deny would kill this session).
#
# Expected (default INVARIANTS kernel): KKASSERT panic
#   "assertion \"zmsg.start_rule == NULL\" failed in ip_fw3_ctl_zero_entry"
# Expected (fixed kernel): setsockopt returns 0, no panic, guest stays up.
set -u
RNUM=${1:-65535}
sysctl net.filters_default_to_accept=1
kldload ipfw3        2>/dev/null || true
kldload ipfw3_basic  2>/dev/null || true
echo "[*] ipfw3 loaded; default policy: $(sysctl -n net.filters_default_to_accept)"
./poc "$RNUM"
echo "RUN_EXIT=$?"
