⬢ DragonFlyBSD Kernel Audit
DF-3154 / instrument.sh
← back to finding ↓ download raw
#!/bin/sh
# DF-3154 debug instrumentation: add kprintfs at the csum-verify failure
# points in the guest's /usr/src ext2fs, build the ext2fs.ko module, load it.
set -e
cd /usr/src/sys/vfs/ext2fs
[ -f ext2_csum.c.orig ] || cp ext2_csum.c ext2_csum.c.orig

sed -i '' 's|SDT_PROBE2(ext2fs, , trace, csum, 1, "bad directory csum detected");|SDT_PROBE2(ext2fs, , trace, csum, 1, "bad directory csum detected"); kprintf("DF3154DBG: bad DIR csum ino=%ju\n", (uintmax_t)ip->i_number);|' ext2_csum.c
sed -i '' 's|SDT_PROBE2(ext2fs, , trace, csum, 1, "bad inode csum");|SDT_PROBE2(ext2fs, , trace, csum, 1, "bad inode csum"); kprintf("DF3154DBG: bad INODE csum ino=%ju prov=%x calc=%x\n", (uintmax_t)ip->i_number, provided, calculated);|' ext2_csum.c

grep -n DF3154DBG ext2_csum.c

make clean >/dev/null 2>&1 || true
make 2>&1 | tail -4
ls -la ext2fs.ko
kldunload ext2fs 2>/dev/null || true
kldload ./ext2fs.ko
kldstat | grep ext2
echo INSTRUMENT-OK