UPSTREAM: media: rkvdec: fix use after free bug in rkvdec_remove
[ Upstream commit 3228cec2 ] In rkvdec_probe, rkvdec->watchdog_work is bound with rkvdec_watchdog_func. Then rkvdec_vp9_run may be called to start the work. If we remove the module which will call rkvdec_remove to make cleanup, there may be a unfinished work. The possible sequence is as follows, which will cause a typical UAF bug. Fix it by canceling the work before cleanup in rkvdec_remove. CPU0 CPU1 |rkvdec_watchdog_func rkvdec_remove | rkvdec_v4l2_cleanup| v4l2_m2m_release | kfree(m2m_dev); | | | v4l2_m2m_get_curr_priv | m2m_dev->curr_ctx //use Bug: 289003637 Fixes: cd33c830 ("media: rkvdec: Add the rkvdec driver") Signed-off-by:Zheng Wang <zyytlz.wz@163.com> Signed-off-by:
Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by:
Mauro Carvalho Chehab <mchehab@kernel.org> Signed-off-by:
Sasha Levin <sashal@kernel.org> (cherry picked from commit 6a17add9) Signed-off-by:
Lee Jones <joneslee@google.com> Change-Id: Ibdf4667315d98ac1cd42545f61e271c291893edd
Loading
Please sign in to comment