DF-4489 / verdict.json
{ "finding_id": "DF-4489", "status": "untested", "reproduced": 0, "impact": "none", "confidence": "certain", "verdict": "Porting divergence in apply_below_the_range (freesync.c:250-252,357-360): min_frame_duration_in_ns is computed then never used, and the clamp compares inserted_frame_duration_in_us against (1000000 / max_refresh_in_uhz) which is 0 for every real refresh in uHz (correct arithmetic is 1e12/refresh_uHz, cf. upstream Linux amd display min_frame_duration_in_ns / 1000). The clamp is dead -> BTR may insert frames below the panel minimum refresh (flicker); no memory-safety impact (v_total is re-clamped to [min,max] duration and nominal v_total in calc_v_total_from_duration :146-160). AMD-GPU-gated: audit guest has no AMD device (virtio-gpu only), so not runtime-testable. Info severity.", "exploit_chain": "", "evidence": "VERDICT.md (arithmetic proof: 1000000/144000000 == 0)", "kernel_refs": [ "sys/dev/drm/amd/display/modules/freesync/freesync.c:250", "sys/dev/drm/amd/display/modules/freesync/freesync.c:357" ], "poc_changes": "", "attempts": 0, "guest_uname": "DragonFly dfbsd 6.5-DEVELOPMENT #0: Thu Jul 2 06:02:54 UTC 2026 root@dfbsd:/usr/obj/usr/src/sys/X86_64_GENERIC x86_64", "runtime_sec": 0, "guest_dirty": 0, "build_cmd": "", "run_cmd": "", "code_hash": "", "notes": "Guest pciconf shows no vendor 0x1002 device; amdgpu/DC freesync unreachable in QEMU.", "recommended_fix": "Use min_frame_duration_in_ns/1000 (i.e. div64_u64(1000000000000ULL, max_refresh_in_uhz)) for the inserted_frame_duration_in_us clamp", "fix_status": "not_testable", "fix_baseline_reproduced": 0, "fix_patched_reproduced": 0, "fix_verdict": "No AMD hardware on the audit guest; static arithmetic proof only.", "fix_evidence": "" } |