Skip to content

Commit d89c0c8

Browse files
vivekkreddykraxel
authored andcommitted
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 <chzigotzky@xenosoft.de> Cc: Gurchetan Singh <gurchetansingh@chromium.org> Cc: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Vivek Kasireddy <vivek.kasireddy@intel.com> Tested-by: Christian Zigotzky <chzigotzky@xenosoft.de> Link: http://patchwork.freedesktop.org/patch/msgid/20211104214249.1802789-1-vivek.kasireddy@intel.com Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
1 parent 14d9a37 commit d89c0c8

1 file changed

Lines changed: 2 additions & 1 deletion

File tree

drivers/gpu/drm/virtio/virtgpu_drv.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,10 +163,11 @@ static __poll_t virtio_gpu_poll(struct file *filp,
163163
struct drm_file *drm_file = filp->private_data;
164164
struct virtio_gpu_fpriv *vfpriv = drm_file->driver_priv;
165165
struct drm_device *dev = drm_file->minor->dev;
166+
struct virtio_gpu_device *vgdev = dev->dev_private;
166167
struct drm_pending_event *e = NULL;
167168
__poll_t mask = 0;
168169

169-
if (!vfpriv->ring_idx_mask)
170+
if (!vgdev->has_virgl_3d || !vfpriv || !vfpriv->ring_idx_mask)
170171
return drm_poll(filp, wait);
171172

172173
poll_wait(filp, &drm_file->event_wait, wait);

0 commit comments

Comments
 (0)