On 05/21/2015 05:42 AM, Jiri Denemark wrote: > Most virDomainDiskIndexByName callers do not care about the index; what > they really want is a disk def pointer. > > Signed-off-by: Jiri Denemark <jdenemar@xxxxxxxxxx> > --- > src/libxl/libxl_driver.c | 4 +-- > src/lxc/lxc_driver.c | 10 +++----- > src/qemu/qemu_agent.c | 9 ++++--- > src/qemu/qemu_blockjob.c | 5 ++-- > src/qemu/qemu_driver.c | 62 ++++++++++++++++++----------------------------- > src/qemu/qemu_migration.c | 6 ++--- > src/qemu/qemu_process.c | 23 ++++-------------- > 7 files changed, 42 insertions(+), 77 deletions(-) > Since Jan asked - I ran this against Coverity... ... > diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c > index 31cc2ee..2ac72a4 100644 > --- a/src/qemu/qemu_driver.c > +++ b/src/qemu/qemu_driver.c > @@ -8559,13 +8559,11 @@ qemuDomainUpdateDeviceConfig(virQEMUCapsPtr qemuCaps, > switch ((virDomainDeviceType) dev->type) { > case VIR_DOMAIN_DEVICE_DISK: > disk = dev->data.disk; > - pos = virDomainDiskIndexByName(vmdef, disk->dst, false); > - if (pos < 0) { > + if (!(orig = virDomainDiskByName(vmdef, disk->dst, false))) { > virReportError(VIR_ERR_INVALID_ARG, > _("target %s doesn't exist."), disk->dst); > return -1; > } > - orig = vmdef->disks[pos]; > if (!(orig->device == VIR_DOMAIN_DISK_DEVICE_CDROM) && > !(orig->device == VIR_DOMAIN_DISK_DEVICE_FLOPPY)) { > virReportError(VIR_ERR_INVALID_ARG, "%s", > @@ -11163,7 +11161,7 @@ qemuDomainBlockResize(virDomainPtr dom, > virQEMUDriverPtr driver = dom->conn->privateData; > virDomainObjPtr vm; > qemuDomainObjPrivatePtr priv; > - int ret = -1, idx; > + int ret = -1; > char *device = NULL; > virDomainDiskDefPtr disk = NULL; > > @@ -11203,12 +11201,11 @@ qemuDomainBlockResize(virDomainPtr dom, > goto endjob; > } > > - if ((idx = virDomainDiskIndexByName(vm->def, path, false)) < 0) { > + if (!(disk = virDomainDiskByName(vm->def, path, false)) < 0) { (1) Event result_independent_of_operands: "!(disk = virDomainDiskByName(vm->def, path, false /* 0 */)) < 0" is always false regardless of the values of its operands. This occurs as the logical operand of if. That led to a second complaint which won't happen if the " < 0" is removed. > virReportError(VIR_ERR_INVALID_ARG, > _("invalid path: %s"), path); > goto endjob; > } > - disk = vm->def->disks[idx]; > > /* qcow2 and qed must be sized on 512 byte blocks/sectors, > * so adjust size if necessary to round up. second issue was here since disk could be accessed... And yes, the sa_assert(persistent_def) that Jan asked about can be safely removed. Coverity also doesn't complain if the sa_assert(conf_disk) is removed. I'll have to check if a few of those previous false positives just like this could be removed... Although for this case it could be because conf_disk is populated and accessed within the same function for the same condition, so it's much easier for Coverity to track. John -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list