Browse Source

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
  virtio: fix out of range array access
Linus Torvalds 15 years ago
parent
commit
4805a1b0e6
1 changed files with 2 additions and 1 deletions
  1. 2 1
      drivers/virtio/virtio_pci.c

+ 2 - 1
drivers/virtio/virtio_pci.c

@@ -473,7 +473,8 @@ static void vp_del_vqs(struct virtio_device *vdev)
 
 
 	list_for_each_entry_safe(vq, n, &vdev->vqs, list) {
 	list_for_each_entry_safe(vq, n, &vdev->vqs, list) {
 		info = vq->priv;
 		info = vq->priv;
-		if (vp_dev->per_vq_vectors)
+		if (vp_dev->per_vq_vectors &&
+			info->msix_vector != VIRTIO_MSI_NO_VECTOR)
 			free_irq(vp_dev->msix_entries[info->msix_vector].vector,
 			free_irq(vp_dev->msix_entries[info->msix_vector].vector,
 				 vq);
 				 vq);
 		vp_del_vq(vq);
 		vp_del_vq(vq);