Skip to content
Commit 6690cc27 authored by Mikhail Kobuk's avatar Mikhail Kobuk Committed by Greg Kroah-Hartman
Browse files

drm: nv04: Fix out of bounds access

[ Upstream commit cf92bb77 ]

When Output Resource (dcb->or) value is assigned in
fabricate_dcb_output(), there may be out of bounds access to
dac_users array in case dcb->or is zero because ffs(dcb->or) is
used as index there.
The 'or' argument of fabricate_dcb_output() must be interpreted as a
number of bit to set, not value.

Utilize macros from 'enum nouveau_or' in calls instead of hardcoding.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: 2e5702af ("drm/nouveau: fabricate DCB encoder table for iMac G4")
Fixes: 670820c0

 ("drm/nouveau: Workaround incorrect DCB entry on a GeForce3 Ti 200.")
Signed-off-by: default avatarMikhail Kobuk <m.kobuk@ispras.ru>
Signed-off-by: default avatarDanilo Krummrich <dakr@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240411110854.16701-1-m.kobuk@ispras.ru
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 2df56f4e
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