]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/vmwgfx: Handle surface check failure correctly
authorNikolay Kuratov <kniv@yandex-team.ru>
Wed, 2 Oct 2024 12:24:29 +0000 (15:24 +0300)
committerZack Rusin <zack.rusin@broadcom.com>
Thu, 10 Oct 2024 18:35:24 +0000 (14:35 -0400)
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: Nikolay Kuratov <kniv@yandex-team.ru>
Cc: stable@vger.kernel.org
Fixes: 810b3e1683d0 ("drm/vmwgfx: Support topology greater than texture size")
Signed-off-by: Zack Rusin <zack.rusin@broadcom.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241002122429.1981822-1-kniv@yandex-team.ru
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c

index e8c08e4a5eff9fe5202cfc44ed28e91d862c5964..63b8d7591253cdada79ea8e34153930011bd4b8f 100644 (file)
@@ -1510,6 +1510,7 @@ static struct drm_framebuffer *vmw_kms_fb_create(struct drm_device *dev,
                DRM_ERROR("Surface size cannot exceed %dx%d\n",
                        dev_priv->texture_max_width,
                        dev_priv->texture_max_height);
+               ret = -EINVAL;
                goto err_out;
        }