DragonFlyBSD Kernel Audit
DF-0661 / build.sh
← back to finding ↓ download raw
#!/bin/sh
# DF-0661 build script.
#
# Builds:
#   1. The ported ng_device.ko module (faithful port of
#      sys/netgraph/ng_device.c to modern dev_ops API, preserving the
#      VLA bug under test at ngdread/ngdwrite).
#   2. The trigger binary.
#
# Must run as root inside the DragonFlyBSD guest.
set -e

BUILD_DIR="/root/ng_device_build"
KERNBUILDDIR="/usr/obj/usr/src/sys/X86_64_GENERIC"

mkdir -p "$BUILD_DIR"
cd "$BUILD_DIR"

# Copy the header from source tree
cp /usr/src/sys/netgraph/ng_device.h .

# ng_device.c (ported) and Makefile should be pushed from the host
# evidence pack. If missing, recreate from the evidence pack.
if [ ! -f ng_device.c ]; then
    echo "[!] ng_device.c not found in $BUILD_DIR"
    exit 1
fi

printf "KMOD=\tng_device\nSRCS=\tng_device.c\n.include <bsd.kmod.mk>\n" > Makefile

echo "=== Building ng_device.ko ==="
make clean 2>/dev/null || true
make KERNBUILDDIR="$KERNBUILDDIR"
echo "=== ng_device.ko built ==="
ls -la ng_device.ko

echo "=== Building trigger ==="
cc -O2 -o trigger trigger.c
echo "=== trigger built ==="
ls -la trigger