Skip to content
  • Markus Armbruster's avatar
    usb-storage: Fix how legacy init handles option ID clash · 31376776
    Markus Armbruster authored
    
    
    usb_msd_init() calls qemu_opts_create() with a made-up ID and false
    fail_if_exists.  If the ID already exists, it happily messes up those
    options, then fails drive_new(), because the BlockDriverState with
    that ID already exists, too.
    
    Reproducer: -drive if=none,id=usb0,format=raw -usbdevice disk:tmp.qcow2
    
    Pass true fail_if_exists to qemu_opts_create(), and if it fails, try
    the next made-up ID.
    
    The reproducer now succeeds, and creates an usb-storage device with ID
    usb1.
    
    Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
    31376776