Skip to content
  • Ryan Harper's avatar
    blockdev: check dinfo ptr before using · 0fc0f1fa
    Ryan Harper authored
    
    
    If a user decides to punish a guest by revoking its block device via
    drive_del, and subsequently also attempts to remove the pci device
    backing it, and the device is using blockdev_auto_del() then we get a
    segfault when we attempt to access dinfo->auto_del.[1]
    
    The fix is to check if drive_get_by_blockdev() actually returns a valid
    dinfo pointer or not.
    
    1. (qemu) pci_add auto storage file=images/test01.raw,if=virtio,id=block1,snapshot=on
       (qemu) drive_del block1
       (qemu) pci_del 5
       *segfault*
    
    Signed-off-by: default avatarRyan Harper <ryanh@us.ibm.com>
    Tested-by: default avatarLuiz Capitulino <lcapitulino@redhat.com>
    Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
    0fc0f1fa