]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemuNamespaceUnlinkPaths: Fix wrong use of iterator variable
authorPeter Krempa <pkrempa@redhat.com>
Thu, 4 Feb 2021 13:27:19 +0000 (14:27 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Thu, 11 Feb 2021 16:05:32 +0000 (17:05 +0100)
'i' is used in both outer and inner loop. Since 'devMountsPath' is now a
NULL-terminated list, we can use a GStrv to iterate it;

Additionally rewrite the conditional of adding to the 'unlinkPaths'
array so that it's more clear what's happening.

Fixes: 5c86fbb72d6e90025481db7
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/qemu/qemu_namespace.c

index 27a78c86e47af182f2f43f99d9a776dbb3583e38..03cc6379fea2f69175afad79df481298dc56bcb6 100644 (file)
@@ -1362,14 +1362,20 @@ qemuNamespaceUnlinkPaths(virDomainObjPtr vm,
         const char *file = paths[i];
 
         if (STRPREFIX(file, QEMU_DEVPREFIX)) {
-            for (i = 0; i < ndevMountsPath; i++) {
-                if (STREQ(devMountsPath[i], "/dev"))
+            GStrv mount;
+            bool inSubmount = false;
+
+            for (mount = devMountsPath; *mount; mount++) {
+                if (STREQ(*mount, "/dev"))
                     continue;
-                if (STRPREFIX(file, devMountsPath[i]))
+
+                if (STRPREFIX(file, *mount)) {
+                    inSubmount = true;
                     break;
+                }
             }
 
-            if (i == ndevMountsPath &&
+            if (!inSubmount &&
                 virStringListAdd(&unlinkPaths, file) < 0)
                 return -1;
         }