diff options
| author | Jeongjun Park <aha310510@gmail.com> | 2026-01-19 17:25:51 +0900 |
|---|---|---|
| committer | Inki Dae <inki.dae@samsung.com> | 2026-02-01 23:27:56 +0900 |
| commit | d3968a0d85b211e197f2f4f06268a7031079e0d0 (patch) | |
| tree | a16d393ab59918a9ae370beb2702292d7db501b4 /tools/perf/lib/Documentation/tutorial/git@git.tavy.me:linux.git | |
| parent | 502d2d8e01c8930afd42363d543ed11298cbe34a (diff) | |
drm/exynos: vidi: use priv->vidi_dev for ctx lookup in vidi_connection_ioctl()
vidi_connection_ioctl() retrieves the driver_data from drm_dev->dev to
obtain a struct vidi_context pointer. However, drm_dev->dev is the
exynos-drm master device, and the driver_data contained therein is not
the vidi component device, but a completely different device.
This can lead to various bugs, ranging from null pointer dereferences and
garbage value accesses to, in unlucky cases, out-of-bounds errors,
use-after-free errors, and more.
To resolve this issue, we need to store/delete the vidi device pointer in
exynos_drm_private->vidi_dev during bind/unbind, and then read this
exynos_drm_private->vidi_dev within ioctl() to obtain the correct
struct vidi_context pointer.
Cc: <stable@vger.kernel.org>
Signed-off-by: Jeongjun Park <aha310510@gmail.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Diffstat (limited to 'tools/perf/lib/Documentation/tutorial/git@git.tavy.me:linux.git')
0 files changed, 0 insertions, 0 deletions
