Re: [libvirt] [PATCH] Fix warning about using an uninitialized next_unit value

2013-06-03 Thread Osier Yang

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

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH] Fix warning about using an uninitialized next_unit value

2013-06-03 Thread Jiri Denemark
On Mon, Jun 03, 2013 at 18:32:15 +0800, Osier Yang wrote:
> 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.
...
> This statement still uses the bool variable "found":
> 
>  hostdev->info->addr.drive.controller = found ?
> def->controllers[i - 1]->idx :
> nscsi_controllers;
> 

Heh, I should have looked at the compilation result before sending this
patch :-) V2 is on the way.

Jirka

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list