vfio/pci: Fix potential memory leak in vfio_msi_cap_len
authorLi Qiang <liq3ea@gmail.com>
Tue, 25 Sep 2018 19:01:27 +0000 (13:01 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 25 Nov 2019 08:52:55 +0000 (09:52 +0100)
[ Upstream commit 30ea32ab1951c80c6113f300fce2c70cd12659e4 ]

Free allocated vdev->msi_perm in error path.

Signed-off-by: Li Qiang <liq3ea@gmail.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/vfio/pci/vfio_pci_config.c

index 7b8a957b008d23cc9addec2380e36fd967bae5b2..06a20ea183dd62536a59ad39e94eb8c38457a2f3 100644 (file)
@@ -1182,8 +1182,10 @@ static int vfio_msi_cap_len(struct vfio_pci_device *vdev, u8 pos)
                return -ENOMEM;
 
        ret = init_pci_cap_msi_perm(vdev->msi_perm, len, flags);
-       if (ret)
+       if (ret) {
+               kfree(vdev->msi_perm);
                return ret;
+       }
 
        return len;
 }