⬢ DragonFlyBSD Kernel Audit
DF-4827 / run2.sh
← back to finding ↓ download raw
#!/bin/sh
# DF-4827 phase 2 only: fix validation (guest must be freshly booted, with-src)
set -e
cd "$(dirname "$0")"
V=/home/maxx/dfbsd/dfbsd/dfbsd-qemu/vm.sh
CFG=/home/maxx/dfbsd/dfbsd/dfbsd-qemu/config

xfer() {
	for f in "$@"; do
		{ echo "cat > /tmp/df4827/$f << 'DFEOF_MARKER'"; cat "$f"; echo 'DFEOF_MARKER'; } |
			ssh -F "$CFG" dfbsd /bin/sh
	done
}

$V reset with-src
$V run_root 'rm -rf /tmp/df4827 && mkdir -p /tmp/df4827'
$V run_root 'cd /usr/src/sys/dev/drm/amd/display/dc/dce && cp -p dce_i2c_sw.c dce_i2c_sw.c.orig && echo ORIG_SAVED'
{ echo "cd /usr/src/sys/dev/drm/amd/display/dc/dce && patch -p1 << 'PATCHEOF'"; \
  sed 's|^--- sys/dev/drm/amd/display/dc/dce/dce_i2c_sw.c.orig.*|--- dce_i2c_sw.c.orig|; s|^+++ sys/dev/drm/amd/display/dc/dce/dce_i2c_sw.c.*|+++ dce_i2c_sw.c|' fix.diff; \
  echo "PATCHEOF"; } | ssh -F "$CFG" dfbsd /bin/sh
$V run_root 'grep -n "pipe_count\|get_hw_supported_ddc_line(ddc, &line)" /usr/src/sys/dev/drm/amd/display/dc/dce/dce_i2c_sw.c | head -5'
xfer swi2cs_probe.c Makefile
$V run_root 'cd /tmp/df4827 && make > build.2.log 2>&1 && echo BUILD2_OK'
BEFORE2=$(wc -l < /home/maxx/dfbsd/dfbsd/dfbsd-qemu/boot.log)
$V run_root 'kldload -v /tmp/df4827/swi2cs.ko && echo KLDLOAD2_OK && kldunload swi2cs && echo KLDUNLOAD_OK'
sleep 4
tail -n +$((BEFORE2 + 1)) /home/maxx/dfbsd/dfbsd/dfbsd-qemu/boot.log > run.2.log || true
echo "-- run.2.log tail:"
tail -16 run.2.log
$V status