]> xenbits.xensource.com Git - libvirt.git/commitdiff
util: virFileIsSharedFixFUSE: Refactor cleanup
authorPeter Krempa <pkrempa@redhat.com>
Mon, 5 Sep 2022 11:57:18 +0000 (13:57 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 5 Sep 2022 15:32:13 +0000 (17:32 +0200)
Automatically free memory of 'canonPath' so that the failure of
'setmntent' doesn't have to go to 'cleanup'. This allows us to remove
the cleanup section and the 'ret' variable as the rest of the function
can't fail.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/util/virfile.c

index 1def05b6c4fce9451e6880f461c0d3d4463206b1..a8443acf8dcb70fefe94577734adb6c50159d0e2 100644 (file)
@@ -3333,24 +3333,19 @@ virFileIsSharedFixFUSE(const char *path,
     char mntbuf[1024];
     char *mntDir = NULL;
     char *mntType = NULL;
-    char *canonPath = NULL;
+    g_autofree char *canonPath = NULL;
     size_t maxMatching = 0;
-    int ret = -1;
 
     if (!(canonPath = virFileCanonicalizePath(path))) {
-        virReportSystemError(errno,
-                             _("unable to canonicalize %s"),
-                             path);
+        virReportSystemError(errno, _("unable to canonicalize %s"), path);
         return -1;
     }
 
     VIR_DEBUG("Path canonicalization: %s->%s", path, canonPath);
 
     if (!(f = setmntent(PROC_MOUNTS, "r"))) {
-        virReportSystemError(errno,
-                             _("Unable to open %s"),
-                             PROC_MOUNTS);
-        goto cleanup;
+        virReportSystemError(errno, _("Unable to open %s"), PROC_MOUNTS);
+        return -1;
     }
 
     while (getmntent_r(f, &mb, mntbuf, sizeof(mntbuf))) {
@@ -3372,6 +3367,8 @@ virFileIsSharedFixFUSE(const char *path,
         }
     }
 
+    endmntent(f);
+
     if (STREQ_NULLABLE(mntType, "fuse.glusterfs")) {
         VIR_DEBUG("Found gluster FUSE mountpoint=%s for path=%s. "
                   "Fixing shared FS type", mntDir, canonPath);
@@ -3382,13 +3379,9 @@ virFileIsSharedFixFUSE(const char *path,
         *f_type = QB_MAGIC;
     }
 
-    ret = 0;
- cleanup:
-    VIR_FREE(canonPath);
     VIR_FREE(mntType);
     VIR_FREE(mntDir);
-    endmntent(f);
-    return ret;
+    return 0;
 }