]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
util: netdevtap: use VIR_AUTOFREE instead of VIR_FREE for scalar types
authorSukrit Bhatnagar <skrtbhtngr@gmail.com>
Sat, 28 Jul 2018 18:01:34 +0000 (23:31 +0530)
committerErik Skultety <eskultet@redhat.com>
Tue, 7 Aug 2018 14:29:55 +0000 (16:29 +0200)
By making use of GNU C's cleanup attribute handled by the
VIR_AUTOFREE macro for declaring scalar variables, majority
of the VIR_FREE calls can be dropped, which in turn leads to
getting rid of most of our cleanup sections.

Signed-off-by: Sukrit Bhatnagar <skrtbhtngr@gmail.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
src/util/virnetdevtap.c

index d432577c0c5dfb442e89edfb030807fb8b4d31f4..ff655add051d448eb82ae17be65312880a2221e3 100644 (file)
@@ -400,16 +400,15 @@ int virNetDevTapCreate(char **ifname,
     if (strstr(*ifname, "%d") != NULL) {
         size_t i;
         for (i = 0; i <= IF_MAXUNIT; i++) {
-            char *newname;
+            VIR_AUTOFREE(char *) newname = NULL;
+
             if (virAsprintf(&newname, *ifname, i) < 0)
                 goto cleanup;
 
             if (virNetDevExists(newname) == 0) {
-                newifname = newname;
+                VIR_STEAL_PTR(newifname, newname);
                 break;
             }
-
-            VIR_FREE(newname);
         }
         if (newifname) {
             VIR_FREE(*ifname);
@@ -423,7 +422,7 @@ int virNetDevTapCreate(char **ifname,
     }
 
     if (tapfd) {
-        char *dev_path = NULL;
+        VIR_AUTOFREE(char *) dev_path = NULL;
         if (virAsprintf(&dev_path, "/dev/%s", ifr.ifr_name) < 0)
             goto cleanup;
 
@@ -431,11 +430,8 @@ int virNetDevTapCreate(char **ifname,
             virReportSystemError(errno,
                                  _("Unable to open %s"),
                                  dev_path);
-            VIR_FREE(dev_path);
             goto cleanup;
         }
-
-        VIR_FREE(dev_path);
     }
 
     if (virNetDevSetName(ifr.ifr_name, *ifname) == -1)