{
  "finding_id": "DF-4893",
  "file": "sys/dev/netif/ath/ath_hal/ah_osdep.c",
  "verdict": "untested",
  "impact": "none",
  "latent": true,
  "title": "AH_DEBUG_ALQ block: unlocked global `ath_hal_alq` TOCTOU (UAF of struct alq) — dead code on DF",
  "reproduce": {
    "build": "sh build.sh  (cc -Wall -Wextra -o trigger trigger.c)",
    "run": "sh run.sh   (on stock DF: exits 3 TARGET ABSENT — this is the expected result; the race target is not compiled into any stock kernel)",
    "expected": "hw.ath.hal.alq / hw.ath.hal.alq_logfile ABSENT; sys/alq.h ABSENT; trigger_rc=3. To actually exercise the race one would need a hand-built kernel with AH_DEBUG_ALQ+AH_DEBUG plus an imported alq(9) and an Atheros NIC (root-gated sysctl toggle vs concurrent HAL register traffic)."
  },
  "kernel_refs": [
    "sys/dev/netif/ath/ath_hal/ah_osdep.c:188-364",
    "sys/dev/netif/ath/ath_hal/ah_osdep.c:202",
    "sys/dev/netif/ath/ath_hal/ah_osdep.c:216-256",
    "sys/dev/netif/ath/ath_hal/ah_osdep.c:258-280",
    "sys/dev/netif/ath/ath_hal/ah_osdep.c:297-307",
    "sys/dev/netif/ath/ath_hal/ah_osdep.c:316-348",
    "sys/dev/netif/ath/ath_hal/ah_osdep.c:350-364",
    "sys/conf/options:551"
  ],
  "artifacts": [
    "README.md", "VERDICT.md", "trigger.c", "build.sh", "run.sh",
    "build.log", "run.log", "run.2.log", "sysctl_proof.txt", "env.txt",
    "fix.diff", "manifest.json", "verdict.json"
  ]
}
