[libvirt] [PATCH] Fix warning about using an uninitialized next_unit value
Osier Yang
jyang at redhat.com
Mon Jun 3 10:32:15 UTC 2013
On 03/06/13 18:22, Jiri Denemark wrote:
> Using an uninitialized value and a bool saying if the value is valid may
> confuse compilators.
> ---
> src/conf/domain_conf.c | 24 +++++++++++++-----------
> 1 file changed, 13 insertions(+), 11 deletions(-)
>
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index 46d49a2..6dc8cf3 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -3883,26 +3883,28 @@ virDomainHostdevAssignAddress(virDomainXMLOptionPtr xmlopt,
> virDomainDefPtr def,
> virDomainHostdevDefPtr hostdev)
> {
> - int next_unit;
> + int next_unit = 0;
> unsigned nscsi_controllers = 0;
> - bool found = false;
> int i;
> + int ret;
>
> if (hostdev->source.subsys.type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI)
> return -1;
>
> - for (i = 0; i < def->ncontrollers && !found; i++) {
> + for (i = 0; i < def->ncontrollers; i++) {
> if (def->controllers[i]->type != VIR_DOMAIN_CONTROLLER_TYPE_SCSI)
> continue;
>
> nscsi_controllers++;
> - next_unit = virDomainControllerSCSINextUnit(def,
> - xmlopt->config.hasWideScsiBus ?
> - SCSI_WIDE_BUS_MAX_CONT_UNIT :
> - SCSI_NARROW_BUS_MAX_CONT_UNIT,
> - def->controllers[i]->idx);
> - if (next_unit >= 0)
> - found = true;
> + ret = virDomainControllerSCSINextUnit(def,
> + xmlopt->config.hasWideScsiBus ?
> + SCSI_WIDE_BUS_MAX_CONT_UNIT :
> + SCSI_NARROW_BUS_MAX_CONT_UNIT,
> + def->controllers[i]->idx);
> + if (ret >= 0) {
> + next_unit = ret;
> + break;
> + }
> }
>
> hostdev->info->type = VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE;
> @@ -3912,7 +3914,7 @@ virDomainHostdevAssignAddress(virDomainXMLOptionPtr xmlopt,
> nscsi_controllers;
This statement still uses the bool variable "found":
hostdev->info->addr.drive.controller = found ?
def->controllers[i - 1]->idx :
nscsi_controllers;
And the controller index "i - 1" above should be changed to "i" instead.
Since
the second expression of the for loop was changed.
Osier
More information about the libvir-list
mailing list