DF-4951 / manifest.json
{ "finding_id": "DF-4951", "title": "vega12_processpptables: vega12_pp_tables_uninitialize dereferences hwmgr->pptable without a NULL guard; hwmgr_hw_init's err1/err2 paths already ran pptable_fini (hwmgr->pptable=NULL) while pm_en/dpm_enabled stay set, so the next hwmgr_hw_fini (second pp_table sysfs write via amd_powerplay_reset, driver teardown, GPU reset) faults at NULL+16 -> kernel panic", "verdict": "reproduced", "impact": "panic", "reproduce": { "build": "cc -O2 -Wall -o vega12_dfini_null vega12_dfini_null.c (guest cc 8.3)", "run": "./vega12_dfini_null", "expected": "CASE 1 BOOT-OK clean; CASE 2 BUG (write1 backend-fail + write2): SIGSEGV fault address 0x10 = kfree(NULL->power_saving_clock_max) at vega12_processpptables.c:301 -- kernel panic equivalent; CASE 3 CONTROL (write1 bad-header err:-path + write2) survives and shows the kzalloc leak; PATCHED (-DPATCHED): case 2/4 survive" }, "kernel_refs": [ "sys/dev/drm/amd/powerplay/hwmgr/vega12_processpptables.c:296", "sys/dev/drm/amd/powerplay/hwmgr/vega12_processpptables.c:301", "sys/dev/drm/amd/powerplay/hwmgr/vega12_processpptables.c:316", "sys/dev/drm/amd/powerplay/hwmgr/hwmgr.c:222", "sys/dev/drm/amd/powerplay/hwmgr/hwmgr.c:229", "sys/dev/drm/amd/powerplay/hwmgr/hwmgr.c:257", "sys/dev/drm/amd/powerplay/hwmgr/hwmgr.c:261", "sys/dev/drm/amd/powerplay/hwmgr/hwmgr.c:267", "sys/dev/drm/amd/powerplay/hwmgr/hwmgr.c:280", "sys/dev/drm/amd/powerplay/amd_powerplay.c:660", "sys/dev/drm/amd/powerplay/amd_powerplay.c:676", "sys/dev/drm/amd/powerplay/amd_powerplay.c:697", "sys/dev/drm/amd/amdgpu/amdgpu_pm.c:463", "sys/dev/drm/amd/powerplay/inc/hwmgr.h:579" ], "artifacts": [ "vega12_dfini_null.c", "build.sh", "run.sh", "run.log", "run.stability.log", "fix_run.log", "fix.diff", "fix_build.log", "env.txt", "README.md", "VERDICT.md", "manifest.json", "verdict.json" ] } |