+ cd /root/df5558 + sh build.sh + ls -l /usr/src/sys/bus/iicbus/iicbus/iicbus.ko /usr/src/sys/bus/iicbus/iic/iic.ko -rw-r--r-- 1 root 1000 10584 Oct 7 16:12 /usr/src/sys/bus/iicbus/iic/iic.ko -rw-r--r-- 1 root 1000 11976 Oct 7 16:12 /usr/src/sys/bus/iicbus/iicbus/iicbus.ko + kldload /usr/src/sys/bus/iicbus/iicbus/iicbus.ko + kldload /boot/kernel/iicbb.ko + kldload /usr/obj/root/df5558/build_reg/iicbb_reg.ko + kldload /usr/obj/root/df5558/build_h/iicbb_harness.ko + kldload /usr/src/sys/bus/iicbus/iic/iic.ko + sleep 1 + ls -l /dev/iic0 crw------- 1 root wheel 32, 0x00000000 Oct 7 16:12 /dev/iic0 + kldload /usr/obj/root/df5558/build_g/groom5558.ko + sysctl 'df5558.readivar=1' df5558.readivar: 0 -> 0 + echo '=============== RUN 1' =============== RUN 1 + ./rdwrleak /dev/iic0 opened /dev/iic0 sanity: RD from ACKing slave 0x50 size=16 rc=0 pattern_ok=YES first=c0 c1 c2 c3 variant=A size=256 groom=1 rc=0 errno=0 non-prefill=255 marker=no kptr-qwords=0 variant=B size=256 groom=1 rc=-1 errno=2 non-prefill=256 marker=no kptr-qwords=15 <== LEAK (error returned yet buffer overwritten) 0000: ff ff ff ff ff ff ff ff 41 4c 45 48 45 41 50 21 0010: 02 00 00 00 00 00 00 00 00 01 00 00 5a 5a 5a 5a 0020: 02 00 00 00 58 ff ff ff 5a 5a 5a 5a 5a 5a 5a 5a 0030: 02 00 00 00 58 ff ff ff 5a 5a 5a 5a 5a 5a 5a 5a 0040: 02 00 00 00 58 ff ff ff 5a 5a 5a 5a 5a 5a 5a 5a 0050: 02 00 00 00 58 ff ff ff 5a 5a 5a 5a 5a 5a 5a 5a variant=A size=256 groom=1 rc=0 errno=2 non-prefill=255 marker=no kptr-qwords=0 variant=B size=256 groom=1 rc=-1 errno=2 non-prefill=256 marker=no kptr-qwords=15 <== LEAK (error returned yet buffer overwritten) variant=A size=256 groom=1 rc=0 errno=2 non-prefill=255 marker=no kptr-qwords=0 variant=B size=256 groom=1 rc=-1 errno=2 non-prefill=256 marker=no kptr-qwords=15 <== LEAK (error returned yet buffer overwritten) variant=A size=512 groom=1 rc=0 errno=2 non-prefill=510 marker=no kptr-qwords=0 variant=B size=512 groom=1 rc=-1 errno=2 non-prefill=512 marker=no kptr-qwords=31 <== LEAK (error returned yet buffer overwritten) variant=A size=512 groom=1 rc=0 errno=2 non-prefill=510 marker=no kptr-qwords=0 variant=B size=512 groom=1 rc=-1 errno=2 non-prefill=512 marker=no kptr-qwords=31 <== LEAK (error returned yet buffer overwritten) variant=A size=512 groom=1 rc=0 errno=2 non-prefill=510 marker=no kptr-qwords=0 variant=B size=512 groom=1 rc=-1 errno=2 non-prefill=512 marker=no kptr-qwords=31 <== LEAK (error returned yet buffer overwritten) variant=A size=1024 groom=1 rc=0 errno=2 non-prefill=1020 marker=no kptr-qwords=0 variant=B size=1024 groom=1 rc=-1 errno=2 non-prefill=1024 marker=no kptr-qwords=63 <== LEAK (error returned yet buffer overwritten) variant=A size=1024 groom=1 rc=0 errno=2 non-prefill=1020 marker=no kptr-qwords=0 variant=B size=1024 groom=1 rc=-1 errno=2 non-prefill=1024 marker=no kptr-qwords=63 <== LEAK (error returned yet buffer overwritten) variant=A size=1024 groom=1 rc=0 errno=2 non-prefill=1020 marker=no kptr-qwords=0 variant=B size=1024 groom=1 rc=-1 errno=2 non-prefill=1024 marker=no kptr-qwords=63 <== LEAK (error returned yet buffer overwritten) variant=A size=2048 groom=1 rc=0 errno=2 non-prefill=2040 marker=no kptr-qwords=0 variant=B size=2048 groom=1 rc=-1 errno=2 non-prefill=2048 marker=no kptr-qwords=127 <== LEAK (error returned yet buffer overwritten) variant=A size=2048 groom=1 rc=0 errno=2 non-prefill=2040 marker=no kptr-qwords=0 variant=B size=2048 groom=1 rc=-1 errno=2 non-prefill=2048 marker=no kptr-qwords=127 <== LEAK (error returned yet buffer overwritten) variant=A size=2048 groom=1 rc=0 errno=2 non-prefill=2040 marker=no kptr-qwords=0 variant=B size=2048 groom=1 rc=-1 errno=2 non-prefill=2048 marker=no kptr-qwords=127 <== LEAK (error returned yet buffer overwritten) groomed attempts done: leak_observed=12 ungroomed hunt: leak_iters=0/200 total_nonprefill=0 total_markers=0 total_kptr_qwords=0 RESULT: UNINITIALIZED KERNEL HEAP DISCLOSED TO USERSPACE + echo '=============== RUN 2' =============== RUN 2 + ./rdwrleak /dev/iic0 opened /dev/iic0 sanity: RD from ACKing slave 0x50 size=16 rc=0 pattern_ok=YES first=c0 c1 c2 c3 variant=A size=256 groom=1 rc=0 errno=0 non-prefill=255 marker=no kptr-qwords=0 variant=B size=256 groom=1 rc=-1 errno=2 non-prefill=256 marker=no kptr-qwords=15 <== LEAK (error returned yet buffer overwritten) 0000: ff ff ff ff ff ff ff ff 41 4c 45 48 45 41 50 21 0010: 1a 00 00 00 00 00 00 00 00 01 00 00 5a 5a 5a 5a 0020: 1a 00 00 00 58 ff ff ff 5a 5a 5a 5a 5a 5a 5a 5a 0030: 1a 00 00 00 58 ff ff ff 5a 5a 5a 5a 5a 5a 5a 5a 0040: 1a 00 00 00 58 ff ff ff 5a 5a 5a 5a 5a 5a 5a 5a 0050: 1a 00 00 00 58 ff ff ff 5a 5a 5a 5a 5a 5a 5a 5a variant=A size=256 groom=1 rc=0 errno=2 non-prefill=255 marker=no kptr-qwords=0 variant=B size=256 groom=1 rc=-1 errno=2 non-prefill=256 marker=no kptr-qwords=15 <== LEAK (error returned yet buffer overwritten) variant=A size=256 groom=1 rc=0 errno=2 non-prefill=255 marker=no kptr-qwords=0 variant=B size=256 groom=1 rc=-1 errno=2 non-prefill=256 marker=no kptr-qwords=15 <== LEAK (error returned yet buffer overwritten) variant=A size=512 groom=1 rc=0 errno=2 non-prefill=510 marker=no kptr-qwords=0 variant=B size=512 groom=1 rc=-1 errno=2 non-prefill=512 marker=no kptr-qwords=31 <== LEAK (error returned yet buffer overwritten) variant=A size=512 groom=1 rc=0 errno=2 non-prefill=510 marker=no kptr-qwords=0 variant=B size=512 groom=1 rc=-1 errno=2 non-prefill=512 marker=no kptr-qwords=31 <== LEAK (error returned yet buffer overwritten) variant=A size=512 groom=1 rc=0 errno=2 non-prefill=510 marker=no kptr-qwords=0 variant=B size=512 groom=1 rc=-1 errno=2 non-prefill=512 marker=no kptr-qwords=31 <== LEAK (error returned yet buffer overwritten) variant=A size=1024 groom=1 rc=0 errno=2 non-prefill=1020 marker=no kptr-qwords=0 variant=B size=1024 groom=1 rc=-1 errno=2 non-prefill=1024 marker=no kptr-qwords=63 <== LEAK (error returned yet buffer overwritten) variant=A size=1024 groom=1 rc=0 errno=2 non-prefill=1020 marker=no kptr-qwords=0 variant=B size=1024 groom=1 rc=-1 errno=2 non-prefill=1024 marker=no kptr-qwords=63 <== LEAK (error returned yet buffer overwritten) variant=A size=1024 groom=1 rc=0 errno=2 non-prefill=1020 marker=no kptr-qwords=0 variant=B size=1024 groom=1 rc=-1 errno=2 non-prefill=1024 marker=no kptr-qwords=63 <== LEAK (error returned yet buffer overwritten) variant=A size=2048 groom=1 rc=0 errno=2 non-prefill=2040 marker=no kptr-qwords=0 variant=B size=2048 groom=1 rc=-1 errno=2 non-prefill=2048 marker=no kptr-qwords=127 <== LEAK (error returned yet buffer overwritten) variant=A size=2048 groom=1 rc=0 errno=2 non-prefill=2040 marker=no kptr-qwords=0 variant=B size=2048 groom=1 rc=-1 errno=2 non-prefill=2048 marker=no kptr-qwords=127 <== LEAK (error returned yet buffer overwritten) variant=A size=2048 groom=1 rc=0 errno=2 non-prefill=2040 marker=no kptr-qwords=0 variant=B size=2048 groom=1 rc=-1 errno=2 non-prefill=2048 marker=no kptr-qwords=127 <== LEAK (error returned yet buffer overwritten) groomed attempts done: leak_observed=12 ungroomed hunt: leak_iters=0/200 total_nonprefill=0 total_markers=0 total_kptr_qwords=0 RESULT: UNINITIALIZED KERNEL HEAP DISCLOSED TO USERSPACE + echo '=============== RUN 3' =============== RUN 3 + ./rdwrleak /dev/iic0 opened /dev/iic0 sanity: RD from ACKing slave 0x50 size=16 rc=0 pattern_ok=YES first=c0 c1 c2 c3 variant=A size=256 groom=1 rc=0 errno=0 non-prefill=255 marker=no kptr-qwords=0 variant=B size=256 groom=1 rc=-1 errno=2 non-prefill=256 marker=no kptr-qwords=15 <== LEAK (error returned yet buffer overwritten) 0000: ff ff ff ff ff ff ff ff 41 4c 45 48 45 41 50 21 0010: 32 00 00 00 00 00 00 00 00 01 00 00 5a 5a 5a 5a 0020: 32 00 00 00 58 ff ff ff 5a 5a 5a 5a 5a 5a 5a 5a 0030: 32 00 00 00 58 ff ff ff 5a 5a 5a 5a 5a 5a 5a 5a 0040: 32 00 00 00 58 ff ff ff 5a 5a 5a 5a 5a 5a 5a 5a 0050: 32 00 00 00 58 ff ff ff 5a 5a 5a 5a 5a 5a 5a 5a variant=A size=256 groom=1 rc=0 errno=2 non-prefill=255 marker=no kptr-qwords=0 variant=B size=256 groom=1 rc=-1 errno=2 non-prefill=256 marker=no kptr-qwords=15 <== LEAK (error returned yet buffer overwritten) variant=A size=256 groom=1 rc=0 errno=2 non-prefill=255 marker=no kptr-qwords=0 variant=B size=256 groom=1 rc=-1 errno=2 non-prefill=256 marker=no kptr-qwords=15 <== LEAK (error returned yet buffer overwritten) variant=A size=512 groom=1 rc=0 errno=2 non-prefill=510 marker=no kptr-qwords=0 variant=B size=512 groom=1 rc=-1 errno=2 non-prefill=512 marker=no kptr-qwords=31 <== LEAK (error returned yet buffer overwritten) variant=A size=512 groom=1 rc=0 errno=2 non-prefill=510 marker=no kptr-qwords=0 variant=B size=512 groom=1 rc=-1 errno=2 non-prefill=512 marker=no kptr-qwords=31 <== LEAK (error returned yet buffer overwritten) variant=A size=512 groom=1 rc=0 errno=2 non-prefill=510 marker=no kptr-qwords=0 variant=B size=512 groom=1 rc=-1 errno=2 non-prefill=512 marker=no kptr-qwords=31 <== LEAK (error returned yet buffer overwritten) variant=A size=1024 groom=1 rc=0 errno=2 non-prefill=1020 marker=no kptr-qwords=0 variant=B size=1024 groom=1 rc=-1 errno=2 non-prefill=1024 marker=no kptr-qwords=63 <== LEAK (error returned yet buffer overwritten) variant=A size=1024 groom=1 rc=0 errno=2 non-prefill=1020 marker=no kptr-qwords=0 variant=B size=1024 groom=1 rc=-1 errno=2 non-prefill=1024 marker=no kptr-qwords=63 <== LEAK (error returned yet buffer overwritten) variant=A size=1024 groom=1 rc=0 errno=2 non-prefill=1020 marker=no kptr-qwords=0 variant=B size=1024 groom=1 rc=-1 errno=2 non-prefill=1024 marker=no kptr-qwords=63 <== LEAK (error returned yet buffer overwritten) variant=A size=2048 groom=1 rc=0 errno=2 non-prefill=2040 marker=no kptr-qwords=0 variant=B size=2048 groom=1 rc=-1 errno=2 non-prefill=2048 marker=no kptr-qwords=127 <== LEAK (error returned yet buffer overwritten) variant=A size=2048 groom=1 rc=0 errno=2 non-prefill=2040 marker=no kptr-qwords=0 variant=B size=2048 groom=1 rc=-1 errno=2 non-prefill=2048 marker=no kptr-qwords=127 <== LEAK (error returned yet buffer overwritten) variant=A size=2048 groom=1 rc=0 errno=2 non-prefill=2040 marker=no kptr-qwords=0 variant=B size=2048 groom=1 rc=-1 errno=2 non-prefill=2048 marker=no kptr-qwords=127 <== LEAK (error returned yet buffer overwritten) groomed attempts done: leak_observed=12 ungroomed hunt: leak_iters=0/200 total_nonprefill=0 total_markers=0 total_kptr_qwords=0 RESULT: UNINITIALIZED KERNEL HEAP DISCLOSED TO USERSPACE + echo '=============== dmesg tail' =============== dmesg tail + tail -25 + dmesg hammer2_mount: hmp=0xfffff8008fae0000 pmp=0xfffff80090280000 DMA space used: 13580k, remaining available: 131072k Mounting devfs hammer2_mount: "vbd0s1d": no recovery needed hammer2: enable read/write HAMMER2: VOLDATA DUMP HAMMER2: INITIATE SPANs swap low/high-water marks set to 41940/62910 fakebb0: on motherboard iicbb0: on fakebb0 iicbus0: on iicbb0 addr 0xff [fakebb] attach done: resets=3 resets_with_oldaddr=1 bus=0xfffff8008bb64dc0 [fakebb] request_bus error=0 [fakebb] write: error=0 sent=8 slave_rx=deadbeef55aa1234 ok=1 [fakebb] read: error=0 read=8 data=c0c1c2c3c4c5c6c7 ok=1 [fakebb] nacked-write: error=2 (IIC_ENOACK=2) bus_started_after=0 [fakebb] repstart-read: error=0 byte=0xc0 (expect 0xc0) [fakebb] SUMMARY: write_ok=1 read_ok=1 starts=5 stops=4 rxlen=0 spray_sink=0 rdrand0: No RdRand support. iic0: on iicbus0 [df5558] groom5558 loaded (sink=0) [df5558] iicbus0 child 0: name=ic unit=0 [df5558] iicbus0 child 1: name=iic unit=0 [df5558] iicbus0 child 2: name=iicsmb unit=0 [df5558] readivar: BUS_READ_IVAR error=0 (ENXIO=6) v=0x0 (written)