⬢ DragonFlyBSD Kernel Audit
DF-2220 / run.log
← back to finding ↓ download raw
DF22X RIG start =========================================
DF2216 start: N=16384 per-call kgetenv alloc=101 bytes (kern_environment.c:242)
DF2216 CONTROL  paired kgetenv+kfreeenv x16384: memuse delta=0 calls delta=16384 (expect ~0 / 16384)
DF2216 BASELINE dmi_match x16384 (matchret=1 mismatchret=0): memuse delta=1703936 calls delta=16384 leaked-bytes-per-call=104
DF2216 BASELINE arm smbios.system.maker  single call: memuse delta=104
DF2216 BASELINE arm smbios.planar.maker  single call: memuse delta=104
DF2216 BASELINE arm smbios.system.product single call: memuse delta=104
DF2216 BASELINE arm smbios.planar.product single call: memuse delta=104
DF2216 FIXED    dmi_match_fixed x16384 (matchret=1 mismatchret=0): memuse delta=0 calls delta=16384
DF2216 VERDICT: baseline leaked 1703936 bytes in 16384 calls (control 0, fixed 0) -> LEAK CONFIRMED, FIX VALID
DF22X ----
DF2220 start: N=16384 init/release cycles, name via verbatim kvasprintf (drm_dragonfly.c:67-84, M_DRM)
DF2220 CONTROL  paired kmalloc/kfree x16384: memuse delta=0 (expect 0)
DF2220 BASELINE kobject_init_and_add+kobject_put x16384: memuse delta=655360 kmalloc-calls delta=32768 releases=16384 leaked-bytes-per-cycle=40
DF2220 BASELINE init:+32 after_release:+32 name ptr still valid, content=[leaked_name_probe_0123456789] len=28 (allocation SURVIVED release)
DF2220 FIXED    init:+32 after_release_fixed:+0 (name freed by the patch)
DF2220 FIXED    init+release_fixed x16384: memuse delta=0 kmalloc-calls delta=32768 releases=16384
DF2220 VERDICT: baseline leaked 655360 bytes in 16384 cycles (control 0, fixed 0) -> LEAK CONFIRMED, FIX VALID
DF22X ----
DF2223 start: real guest PCI devices drive the real pcie_capability_read_dword (linux_pci.c:30-39) with the real predicate chain (linux/pci.h:473-495, pci_is_pcie, real config reads)
DF2223 BASELINE hostb0         LNKCAP rc=-22 dst=0xa5a5a5a5 UNTOUCHED-CANARY (dst left uninitialized)
DF2223 BASELINE hostb0         pcie_get_width_cap-style consumer: lnkcap=0xa5a5a5a5 -> width=0x1a (derived from UNINITIALIZED stack)
DF2223 BASELINE hostb0         CONTROL FLAGS_TYPE rc=-22 dst=0xa5a5a5a5 (non-PCIe guest: predicate false for every reg)
DF2223 FIXED    hostb0         LNKCAP rc=-22 dst=0x00000000 WRITTEN-0 (upstream contract)
DF2223 FIXED    hostb0         pcie_get_width_cap-style consumer: lnkcap=0x00000000 -> width=0xff (deterministic UNKNOWN)
DF2223 FIXED    hostb0         CONTROL FLAGS_TYPE rc=-22 dst=0xa5a5a5a5 (non-PCIe guest: predicate false for every reg)
DF2223 BASELINE isab1          LNKCAP rc=-22 dst=0xa5a5a5a5 UNTOUCHED-CANARY (dst left uninitialized)
DF2223 BASELINE isab1          pcie_get_width_cap-style consumer: lnkcap=0xa5a5a5a5 -> width=0x1a (derived from UNINITIALIZED stack)
DF2223 BASELINE isab1          CONTROL FLAGS_TYPE rc=-22 dst=0xa5a5a5a5 (non-PCIe guest: predicate false for every reg)
DF2223 FIXED    isab1          LNKCAP rc=-22 dst=0x00000000 WRITTEN-0 (upstream contract)
DF2223 FIXED    isab1          pcie_get_width_cap-style consumer: lnkcap=0x00000000 -> width=0xff (deterministic UNKNOWN)
DF2223 FIXED    isab1          CONTROL FLAGS_TYPE rc=-22 dst=0xa5a5a5a5 (non-PCIe guest: predicate false for every reg)
DF2223 BASELINE atapci0        LNKCAP rc=-22 dst=0xa5a5a5a5 UNTOUCHED-CANARY (dst left uninitialized)
DF2223 BASELINE atapci0        pcie_get_width_cap-style consumer: lnkcap=0xa5a5a5a5 -> width=0x1a (derived from UNINITIALIZED stack)
DF2223 BASELINE atapci0        CONTROL FLAGS_TYPE rc=-22 dst=0xa5a5a5a5 (non-PCIe guest: predicate false for every reg)
DF2223 FIXED    atapci0        LNKCAP rc=-22 dst=0x00000000 WRITTEN-0 (upstream contract)
DF2223 FIXED    atapci0        pcie_get_width_cap-style consumer: lnkcap=0x00000000 -> width=0xff (deterministic UNKNOWN)
DF2223 FIXED    atapci0        CONTROL FLAGS_TYPE rc=-22 dst=0xa5a5a5a5 (non-PCIe guest: predicate false for every reg)
DF2223 BASELINE (null)         LNKCAP rc=-22 dst=0xa5a5a5a5 UNTOUCHED-CANARY (dst left uninitialized)
DF2223 BASELINE (null)         pcie_get_width_cap-style consumer: lnkcap=0xa5a5a5a5 -> width=0x1a (derived from UNINITIALIZED stack)
DF2223 BASELINE (null)         CONTROL FLAGS_TYPE rc=-22 dst=0xa5a5a5a5 (non-PCIe guest: predicate false for every reg)
DF2223 FIXED    (null)         LNKCAP rc=-22 dst=0x00000000 WRITTEN-0 (upstream contract)
DF2223 FIXED    (null)         pcie_get_width_cap-style consumer: lnkcap=0x00000000 -> width=0xff (deterministic UNKNOWN)
DF2223 FIXED    (null)         CONTROL FLAGS_TYPE rc=-22 dst=0xa5a5a5a5 (non-PCIe guest: predicate false for every reg)
DF2223 BASELINE vgapci0        LNKCAP rc=-22 dst=0xa5a5a5a5 UNTOUCHED-CANARY (dst left uninitialized)
DF2223 BASELINE vgapci0        pcie_get_width_cap-style consumer: lnkcap=0xa5a5a5a5 -> width=0x1a (derived from UNINITIALIZED stack)
DF2223 BASELINE vgapci0        CONTROL FLAGS_TYPE rc=-22 dst=0xa5a5a5a5 (non-PCIe guest: predicate false for every reg)
DF2223 FIXED    vgapci0        LNKCAP rc=-22 dst=0x00000000 WRITTEN-0 (upstream contract)
DF2223 FIXED    vgapci0        pcie_get_width_cap-style consumer: lnkcap=0x00000000 -> width=0xff (deterministic UNKNOWN)
DF2223 FIXED    vgapci0        CONTROL FLAGS_TYPE rc=-22 dst=0xa5a5a5a5 (non-PCIe guest: predicate false for every reg)
DF2223 BASELINE virtio_pci0    LNKCAP rc=-22 dst=0xa5a5a5a5 UNTOUCHED-CANARY (dst left uninitialized)
DF2223 BASELINE virtio_pci0    pcie_get_width_cap-style consumer: lnkcap=0xa5a5a5a5 -> width=0x1a (derived from UNINITIALIZED stack)
DF2223 BASELINE virtio_pci0    CONTROL FLAGS_TYPE rc=-22 dst=0xa5a5a5a5 (non-PCIe guest: predicate false for every reg)
DF2223 FIXED    virtio_pci0    LNKCAP rc=-22 dst=0x00000000 WRITTEN-0 (upstream contract)
DF2223 FIXED    virtio_pci0    pcie_get_width_cap-style consumer: lnkcap=0x00000000 -> width=0xff (deterministic UNKNOWN)
DF2223 FIXED    virtio_pci0    CONTROL FLAGS_TYPE rc=-22 dst=0xa5a5a5a5 (non-PCIe guest: predicate false for every reg)
DF2223 BASELINE virtio_pci1    LNKCAP rc=-22 dst=0xa5a5a5a5 UNTOUCHED-CANARY (dst left uninitialized)
DF2223 BASELINE virtio_pci1    pcie_get_width_cap-style consumer: lnkcap=0xa5a5a5a5 -> width=0x1a (derived from UNINITIALIZED stack)
DF2223 BASELINE virtio_pci1    CONTROL FLAGS_TYPE rc=-22 dst=0xa5a5a5a5 (non-PCIe guest: predicate false for every reg)
DF2223 FIXED    virtio_pci1    LNKCAP rc=-22 dst=0x00000000 WRITTEN-0 (upstream contract)
DF2223 FIXED    virtio_pci1    pcie_get_width_cap-style consumer: lnkcap=0x00000000 -> width=0xff (deterministic UNKNOWN)
DF2223 FIXED    virtio_pci1    CONTROL FLAGS_TYPE rc=-22 dst=0xa5a5a5a5 (non-PCIe guest: predicate false for every reg)
DF2223 VERDICT: 7 devices exercised; baseline left *dst untouched (canary intact) on every not-implemented read while FIXED zeroes it (upstream Linux contract: *val = 0)
DF22X ----
DF2224 start: verbatim seq_printf (linux_printf.c:31-39) vs fix-2224 (kvsnprintf) with identical variadic args
DF2224 BASELINE [int fmt %d/%lu/%x (want 111/222222/beef)] buf=[402699856/48879/5f5e100] canaries=INTACT first16=3430323639393835362f34383837392f
DF2224 FIXED    [int fmt %d/%lu/%x (want 111/222222/beef)] buf=[111/222222/beef] canaries=INTACT first16=3131312f3232323232322f6265656600
DF2224 BASELINE [%%p of 0xdeadbeef (leak flavor)] buf=[ptr=0xfffff8011800b650] canaries=INTACT first16=7074723d307866666666663830313138
DF2224 FIXED    [%%p of 0xdeadbeef] buf=[ptr=0xdeadbeef] canaries=INTACT first16=7074723d3078646561646265656600cc
DF2224 witness: rig kernel stack address for comparison: 0xfffff8011800b6ec (baseline buf above should hold an address of this shape, not 0xdeadbeef)
DF2224 BASELINE [%s of hi] buf=[s=[^P]] canaries=INTACT first16=733d5b105d00cccccccccccccccccccc
DF2224 FIXED    [%s of hi] buf=[s=[hi]] canaries=INTACT first16=733d5b68695d00cccccccccccccccccc
DF2224 VERDICT: baseline garbles every conversion and can print a kernel stack address (%p) into the seq buffer; fixed forwards the real arguments; canaries prove no overflow
DF22X RIG done ==========================================