summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorFedor Pchelkin <pchelkin@ispras.ru>2023-12-15 12:33:55 +0300
committerSasha Levin <sashal@kernel.org>2024-03-27 01:20:50 +0300
commit527480cab5ccd85beb355f7ac4a27903eabc7348 (patch)
treef5a642b37484f175b19247e748b9ef7364831ce7 /drivers
parente0b0d1c46a2ce1e46b79d004a7270fdef872e097 (diff)
downloadlinux-527480cab5ccd85beb355f7ac4a27903eabc7348.tar.xz
drm/tegra: put drm_gem_object ref on error in tegra_fb_create
[ Upstream commit 32e5a120a5105bce01561978ee55aee8e40ac0dc ] Inside tegra_fb_create(), drm_gem_object_lookup() increments ref count of the found object. But if the following size check fails then the last found object's ref count should be put there as the unreferencing loop can't detect this situation. Found by Linux Verification Center (linuxtesting.org). Fixes: de2ba664c30f ("gpu: host1x: drm: Add memory manager and fb") Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru> Signed-off-by: Thierry Reding <treding@nvidia.com> Link: https://patchwork.freedesktop.org/patch/msgid/20231215093356.12067-1-pchelkin@ispras.ru Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/tegra/fb.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c
index 9291209154a7..a688ecf08451 100644
--- a/drivers/gpu/drm/tegra/fb.c
+++ b/drivers/gpu/drm/tegra/fb.c
@@ -166,6 +166,7 @@ struct drm_framebuffer *tegra_fb_create(struct drm_device *drm,
if (gem->size < size) {
err = -EINVAL;
+ drm_gem_object_put(gem);
goto unreference;
}