amdgpu: Don't dereference device_handle after amdgpu_device_deinitialize
authorMichel Dänzer <michel.daenzer@amd.com>
Tue, 16 Jan 2018 15:55:53 +0000 (16:55 +0100)
committerMichel Dänzer <michel@daenzer.net>
Tue, 16 Jan 2018 15:57:57 +0000 (16:57 +0100)
commit6fe93b8000757e77c3d94f8d8f1b7a22f928de73
tree6d884dc87f739d4d9c65fd2052855f67ef845e74
parent57d3d4c96887cde016fe1d2766196accf77ca423
amdgpu: Don't dereference device_handle after amdgpu_device_deinitialize

Fixes use after free:

==2537== Invalid read of size 4
==2537==    at 0x1162C9: suite_deadlock_tests_enable (deadlock_tests.c:101)
==2537==    by 0x10B157: amdgpu_disable_suits (amdgpu_test.c:421)
==2537==    by 0x10B157: main (amdgpu_test.c:560)
==2537==  Address 0x5e44f24 is 452 bytes inside a block of size 1,016 free'd
==2537==    at 0x4C2BE1B: free (vg_replace_malloc.c:530)
==2537==    by 0x504CD8B: amdgpu_device_reference (amdgpu_device.c:164)
==2537==    by 0x504CD8B: amdgpu_device_deinitialize (amdgpu_device.c:307)
==2537==    by 0x1162BB: suite_deadlock_tests_enable (deadlock_tests.c:97)
==2537==    by 0x10B157: amdgpu_disable_suits (amdgpu_test.c:421)
==2537==    by 0x10B157: main (amdgpu_test.c:560)
==2537==  Block was alloc'd at
==2537==    at 0x4C2CC05: calloc (vg_replace_malloc.c:711)
==2537==    by 0x504CA5E: amdgpu_device_initialize (amdgpu_device.c:212)
==2537==    by 0x116298: suite_deadlock_tests_enable (deadlock_tests.c:93)
==2537==    by 0x10B157: amdgpu_disable_suits (amdgpu_test.c:421)
==2537==    by 0x10B157: main (amdgpu_test.c:560)

Reviewed-by: Christian König <christian.koenig@amd.com>
tests/amdgpu/deadlock_tests.c