DragonFlyBSD Kernel Audit
DF-2640 / build.sh
← back to finding ↓ download raw
#!/bin/sh
# DF-2640 build: create the base image in the guest, forge variants on host,
# push everything to the guest.
set -e
CD=$(dirname "$0")
ROOT=$(cd "$CD/../../.." && pwd)

# 1. guest (root): make the base image (64M, newfs_hammer2, pub 777 + f1/f2/g1)
ssh -F $ROOT/dfbsd-qemu/config dfbsd 'mkdir -p /root/poc/df2640 /mnt/h2'
scp -F $ROOT/dfbsd-qemu/config "$CD/mkbase2640.sh" dfbsd:/root/poc/
ssh -F $ROOT/dfbsd-qemu/config dfbsd 'sh /root/poc/mkbase2640.sh'
scp -F $ROOT/dfbsd-qemu/config dfbsd:/root/poc/df2640/base2640.img "$CD/"

# 2. host: forge the malformed variants
python3 "$CD/forge_df2640.py" "$CD/base2640.img" U  "$CD/U.img"
python3 "$CD/forge_df2640.py" "$CD/base2640.img" U2 "$CD/U2.img"

# 3. push everything to the guest
scp -F $ROOT/dfbsd-qemu/config "$CD/U.img" "$CD/U2.img" \
    "$CD/trigger_U.sh" "$CD/trigger_U2.sh" \
    dfbsd:/root/poc/df2640/
echo BUILD_OK