From: Vivek Kasireddy <vivek.kasire...@intel.com>

drm/virtio: Fix NULL dereference error in virtio_gpu_poll

When virgl is not enabled, vfpriv pointer would not be allocated.
Therefore, check for a valid value before dereferencing.

Reported-by: Christian Zigotzky <chzigot...@xenosoft.de>
Cc: Gurchetan Singh <gurchetansi...@chromium.org>
Cc: Gerd Hoffmann <kra...@redhat.com>
Signed-off-by: Vivek Kasireddy <vivek.kasire...@intel.com>

diff --git a/drivers/gpu/drm/virtio/virtgpu_drv.c 
b/drivers/gpu/drm/virtio/virtgpu_drv.c
index blahblah..blahblah 100644
--- a/drivers/gpu/drm/virtio/virtgpu_drv.c
+++ b/drivers/gpu/drm/virtio/virtgpu_drv.c
@@ -163,10 +163,11 @@ static __poll_t virtio_gpu_poll(struct file *filp,
        struct drm_file *drm_file = filp->private_data;
        struct virtio_gpu_fpriv *vfpriv = drm_file->driver_priv;
        struct drm_device *dev = drm_file->minor->dev;
+       struct virtio_gpu_device *vgdev = dev->dev_private;
        struct drm_pending_event *e = NULL;
        __poll_t mask = 0;
 
-       if (!vfpriv->ring_idx_mask)
+       if (!vgdev->has_virgl_3d || !vfpriv || !vfpriv->ring_idx_mask)
                return drm_poll(filp, wait);
 
        poll_wait(filp, &drm_file->event_wait, wait);

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1489
_______________________________________________
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam on the list, report it: 
https://pagure.io/fedora-infrastructure

Reply via email to