From: Jim Meyering Date: Tue, 2 Mar 2010 16:45:10 +0000 (+0100) Subject: qemudDomainAttachSCSIDisk: handle empty controller list X-Git-Tag: v0.8.0~341 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f5a6ce44ce8368d4183b69a31b77f67688d9af43;p=thirdparty%2Flibvirt.git qemudDomainAttachSCSIDisk: handle empty controller list * src/qemu/qemu_driver.c (qemudDomainAttachSCSIDisk): Handle the (theoretical) case of an empty controller list, so that clang does not think the subsequent dereference of "cont" would dereference an undefined variable (due to preceding loop not iterating even once). --- diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index c6991b50eb..79899e5b4e 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -6090,6 +6090,12 @@ static int qemudDomainAttachSCSIDisk(struct qemud_driver *driver, if (!(drivestr = qemuBuildDriveStr(disk, 0, qemuCmdFlags))) goto error; + if (disk->info.addr.drive.controller <= 0) { + qemuReportError(VIR_ERR_INTERNAL_ERROR, + _("no drive controller for %s"), disk->dst); + goto error; + } + for (i = 0 ; i <= disk->info.addr.drive.controller ; i++) { cont = qemuDomainFindOrCreateSCSIDiskController(driver, vm, i, qemuCmdFlags); if (!cont)