⬢ DragonFlyBSD Kernel Audit
DF-4840 / build_patched.sh
← back to finding ↓ download raw
#!/bin/sh
# DF-4840 fix validation (guest, root, inside /root/df4840)
# 1. apply fix.diff to guest /usr/src/sys/dev/drm/drm_mode_object.c
# 2. build patched drm.ko (module-only)
# 3. load PATCHED drm.ko, then modeuaf.ko
# 4. A/B: mode 5 (old, unlocked sequence)  -> forced-interleave hits
#         mode 9 (fixed sequence: mode_config.mutex across find..read) -> 0 hits
#         mode 1 (real PATCHED ioctl) -> functional regression check
set -e
cd /root/df4840

echo "=== applying fix to /usr/src ==="
cd /usr/src && patch -s -p1 --dry-run < /root/df4840/fix.diff && patch -s -p1 < /root/df4840/fix.diff && echo "patch applied"
grep -n "mutex_lock(&dev->mode_config.mutex);" /usr/src/sys/dev/drm/drm_mode_object.c

echo "=== building patched drm.ko ==="
cd /usr/src/sys/dev/drm/drm && make clean >/dev/null 2>&1 || true
make 2>&1 | tee /root/df4840/drm-build-patched.log | tail -3
ls -la drm.ko
cp drm.ko /root/df4840/drm-patched.ko
echo BUILD_ALL_OK