Sasha Levin
2021-Jul-14 16:49 UTC
[PATCH AUTOSEL 4.4 08/31] drm/virtio: Fixes a potential NULL pointer dereference on probe failure
On Mon, Jul 12, 2021 at 11:59:37PM +0200, Pavel Machek wrote:>Hi! > >> From: Xie Yongji <xieyongji at bytedance.com> >> >> [ Upstream commit 17f46f488a5d82c5568e6e786cd760bba1c2ee09 ] >> >> The dev->dev_private might not be allocated if virtio_gpu_pci_quirk() >> or virtio_gpu_init() failed. In this case, we should avoid the cleanup >> in virtio_gpu_release(). > >The check is in wrong place at least in 4.4: > >> +++ b/drivers/gpu/drm/virtio/virtgpu_kms.c >> @@ -257,6 +257,9 @@ int virtio_gpu_driver_unload(struct drm_device *dev) >> flush_work(&vgdev->config_changed_work); >> vgdev->vdev->config->del_vqs(vgdev->vdev); >> >> + if (!vgdev) >> + return; >> + > >Pointer is dereferenced before being tested.Heh, yes, thanks for catching that. I'll drop it for now and rework it next week. -- Thanks, Sasha