Skip to content
Commit 4217c6ac authored by Steven Price's avatar Steven Price
Browse files

drm/panfrost: Fix GEM handle creation ref-counting



panfrost_gem_create_with_handle() previously returned a BO but with the
only reference being from the handle, which user space could in theory
guess and release, causing a use-after-free. Additionally if the call to
panfrost_gem_mapping_get() in panfrost_ioctl_create_bo() failed then
a(nother) reference on the BO was dropped.

The _create_with_handle() is a problematic pattern, so ditch it and
instead create the handle in panfrost_ioctl_create_bo(). If the call to
panfrost_gem_mapping_get() fails then this means that user space has
indeed gone behind our back and freed the handle. In which case just
return an error code.

Reported-by: default avatarRob Clark <robdclark@chromium.org>
Fixes: f3ba9122

 ("drm/panfrost: Add initial panfrost driver")
Signed-off-by: default avatarSteven Price <steven.price@arm.com>
Reviewed-by: default avatarRob Clark <robdclark@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20221219140130.410578-1-steven.price@arm.com
parent 4e699e34
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment