On 03/07/2016 12:24 PM, Andrea Bolognani wrote: > If 'last_processed_hostdev_vf != -1' is false then, since the > loop counter 'i' starts at 0, 'i <= last_processed_hostdev_vf' > can't possibly be true and the loop body will never be executed. > > Hence, the first check is completely redundant and can be safely > removed. > --- > src/util/virhostdev.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > Premise understood; however, Coverity has an issue... > diff --git a/src/util/virhostdev.c b/src/util/virhostdev.c > index 098207e..f08502b 100644 > --- a/src/util/virhostdev.c > +++ b/src/util/virhostdev.c Way back here: 507 virPCIDeviceListPtr pcidevs = NULL; (1) Event var_tested_neg: Assigning: "last_processed_hostdev_vf" = a negative value. Also see events: [negative_returns] 508 int last_processed_hostdev_vf = -1; Eventually we enter this loop: for (i = 0; i < nhostdevs; i++) { virDomainHostdevDefPtr hostdev = hostdevs[i]; if (!virHostdevIsPCINetDevice(hostdev)) continue; if (virHostdevNetConfigReplace(hostdev, uuid, mgr->stateDir) < 0) { goto resetvfnetconfig; } last_processed_hostdev_vf = i; } If for some reason we "continue" (or not) and eventually "goto resetvfnetconfig;" before ever setting last_processed_hostdev_vf, then we get to the goto.,.. > @@ -718,8 +718,7 @@ virHostdevPreparePCIDevices(virHostdevManagerPtr hostdev_mgr, > } > > resetvfnetconfig: > - for (i = 0; > - last_processed_hostdev_vf != -1 && i <= last_processed_hostdev_vf; i++) and last_processed_hostdev_vf still == -1 So that check needs to be there - perhaps just add an: if (last_processed_hostdev_vf > -1) { } John > + for (i = 0; i <= last_processed_hostdev_vf; i++) > virHostdevNetConfigRestore(hostdevs[i], hostdev_mgr->stateDir, NULL); > > reattachdevs: > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list