[PATCH] drm/mediatek: fix device use-after-free on unbind

Ritesh Raj Sarraf ritesh.sarraf at collabora.com
Tue Oct 21 23:46:21 PDT 2025


On Mon, 2025-10-06 at 11:39 +0200, Johan Hovold wrote:
> A recent change fixed device reference leaks when looking up drm
> platform device driver data during bind() but failed to remove a
> partial
> fix which had been added by commit 80805b62ea5b ("drm/mediatek: Fix
> kobject put for component sub-drivers").
> 
> This results in a reference imbalance on component bind() failures
> and
> on unbind() which could lead to a user-after-free.
> 
> Make sure to only drop the references after retrieving the driver
> data
> by effectively reverting the previous partial fix.
> 
> Note that holding a reference to a device does not prevent its driver
> data from going away so there is no point in keeping the reference.
> 

We ran into the same issue in mesaci[1] and have test validated this
proposed fix. It was tested with Linux 6.17.3 + this fix.

[1] https://gitlab.freedesktop.org/RickXy/mesa/-/jobs/86389548


Tested-by: Ritesh Raj Sarraf <ritesh.sarraf at collabora.com>

> Fixes: 1f403699c40f ("drm/mediatek: Fix device/node reference count
> leaks in mtk_drm_get_all_drm_priv")
> Reported-by: Sjoerd Simons <sjoerd at collabora.com>
> Link:
> https://lore.kernel.org/r/20251003-mtk-drm-refcount-v1-1-3b3f2813b0db@collabora.com
> Cc: stable at vger.kernel.org
> Cc: Ma Ke <make24 at iscas.ac.cn>
> Cc: AngeloGioacchino Del Regno
> <angelogioacchino.delregno at collabora.com>
> Signed-off-by: Johan Hovold <johan at kernel.org>

-- 
Ritesh Raj Sarraf
Collabora



More information about the Linux-mediatek mailing list