Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bc865c54 authored by Nikolay Kuratov's avatar Nikolay Kuratov Committed by Harshit Mogalapalli
Browse files

drm/vmwgfx: Handle surface check failure correctly



commit 26498b8d54373d31a621d7dec95c4bd842563b3b upstream.

Currently if condition (!bo and !vmw_kms_srf_ok()) was met
we go to err_out with ret == 0.
err_out dereferences vfb if ret == 0, but in our case vfb is still NULL.

Fix this by assigning sensible error to ret.

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

Signed-off-by: default avatarNikolay Kuratov <kniv@yandex-team.ru>
Cc: stable@vger.kernel.org
Fixes: 810b3e16 ("drm/vmwgfx: Support topology greater than texture size")
Signed-off-by: default avatarZack Rusin <zack.rusin@broadcom.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241002122429.1981822-1-kniv@yandex-team.ru


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit f924af52)
Signed-off-by: default avatarVegard Nossum <vegard.nossum@oracle.com>
Signed-off-by: default avatarHarshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
parent 67d246dc
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -1486,6 +1486,7 @@ static struct drm_framebuffer *vmw_kms_fb_create(struct drm_device *dev,
		DRM_ERROR("Surface size cannot exceed %dx%d",
		DRM_ERROR("Surface size cannot exceed %dx%d",
			dev_priv->texture_max_width,
			dev_priv->texture_max_width,
			dev_priv->texture_max_height);
			dev_priv->texture_max_height);
		ret = -EINVAL;
		goto err_out;
		goto err_out;
	}
	}