chiark / gitweb /
network-intenal: user _cleanup_ macro in parse_ifname
authorTom Gundersen <teg@jklm.no>
Fri, 9 Jan 2015 23:33:46 +0000 (00:33 +0100)
committerTom Gundersen <teg@jklm.no>
Mon, 12 Jan 2015 17:19:16 +0000 (18:19 +0100)
src/libsystemd-network/network-internal.c

index 6852a7129a865dad1b7444d7f56a4d07852efaa7..e4a15d0b8a11b472c50a00d1f43b1ab581bdcb1a 100644 (file)
@@ -224,7 +224,7 @@ int config_parse_ifalias(const char *unit,
                          void *userdata) {
 
         char **s = data;
                          void *userdata) {
 
         char **s = data;
-        char *n;
+        _cleanup_free_ char *n = NULL;
 
         assert(filename);
         assert(lvalue);
 
         assert(filename);
         assert(lvalue);
@@ -238,17 +238,15 @@ int config_parse_ifalias(const char *unit,
         if (!ascii_is_valid(n) || strlen(n) >= IFALIASZ) {
                 log_syntax(unit, LOG_ERR, filename, line, EINVAL,
                            "Interface alias is not ASCII clean or is too long, ignoring assignment: %s", rvalue);
         if (!ascii_is_valid(n) || strlen(n) >= IFALIASZ) {
                 log_syntax(unit, LOG_ERR, filename, line, EINVAL,
                            "Interface alias is not ASCII clean or is too long, ignoring assignment: %s", rvalue);
-                free(n);
                 return 0;
         }
 
         free(*s);
                 return 0;
         }
 
         free(*s);
-        if (*n)
+        if (*n) {
                 *s = n;
                 *s = n;
-        else {
-                free(n);
+                n = NULL;
+        } else
                 *s = NULL;
                 *s = NULL;
-        }
 
         return 0;
 }
 
         return 0;
 }