linux/drivers/virtio
Michael S. Tsirkin 8014c2513d virtio_pci: fix use after free on release
commit 2989be09a8 upstream.

KASan detected a use-after-free error in virtio-pci remove code. In
virtio_pci_remove(), vp_dev is still used after being freed in
unregister_virtio_device() (in virtio_pci_release_dev() more
precisely).

To fix, keep a reference until cleanup is done.

Fixes: 63bd62a08c ("virtio_pci: defer kfree until release callback")
Reported-by: Jerome Marchand <jmarchan@redhat.com>
Cc: Sasha Levin <sasha.levin@oracle.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Tested-by: Jerome Marchand <jmarchan@redhat.com>
[ luis: backported to 3.16:
  - file rename: virtio_pci_legacy.c -> virtio_pci.c ]
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
History 2016-02-17 10:22:39 +00:00
..
config.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
Kconfig drivers/virtio: remove depends on CONFIG_EXPERIMENTAL 2013-01-11 11:39:04 -08:00
Makefile virtio: remove CONFIG_VIRTIO_RING 2012-09-28 15:05:15 +09:30
virtio.c virtio: fix memory leak of virtio ida cache layers 2016-01-11 10:50:18 +00:00
virtio_balloon.c virtio_balloon: fix race by fill and leak 2016-02-02 19:09:32 +00:00
virtio_mmio.c virtio: mmio: fix signature checking for BE guests 2013-11-07 12:13:04 +10:30
virtio_pci.c virtio_pci: fix use after free on release 2016-02-17 10:22:39 +00:00
virtio_ring.c virtio: virtio_break_device() to mark all virtqueues broken. 2014-04-28 11:34:13 +09:30