DF-2619 / build.sh
#!/bin/sh # DF-2619 build: base image in guest, forge on host, compile probes in guest. set -e CD=$(dirname "$0") # 1. guest (root): base image with one 255-char-named file ssh -F dfbsd-qemu/config dfbsd 'mkdir -p /root/poc/dfv /mnt/h2x' ssh -F dfbsd-qemu/config dfbsd 'vnconfig -u vn0 2>/dev/null || true; cd /root/poc/dfv && truncate -s 64M base2619.img && newfs_hammer2 -L testvol base2619.img >/dev/null && vnconfig -c vn0 /root/poc/dfv/base2619.img && mount -t hammer2 /dev/vn0@testvol /mnt/h2x && head -c 255 /dev/zero | tr "\0" A > "/mnt/h2x/$(head -c 255 /dev/zero | tr "\0" A)" && sync && umount /mnt/h2x && vnconfig -u vn0 && echo BASE2619_OK' scp -F dfbsd-qemu/config dfbsd:/root/poc/dfv/base2619.img "$CD/" # 2. host: forge python3 "$CD/forge_2619.py" "$CD/base2619.img" "$CD/craft2619.img" # 3. guest: compile + push scp -F dfbsd-qemu/config "$CD/getdents_dump.c" "$CD/statprobe.c" \ "$CD/run_2619.sh" dfbsd:/root/poc/dfv/ scp -F dfbsd-qemu/config "$CD/craft2619.img" "$CD/base2619.img" dfbsd:/root/poc/dfv/ ssh -F dfbsd-qemu/config dfbsd 'cc -O -o /root/poc/dfv/getdents_dump /root/poc/dfv/getdents_dump.c && cc -O -o /root/poc/dfv/statprobe /root/poc/dfv/statprobe.c && sync && echo BUILD_OK' |