sd-path: use _cleanup_ attribute
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 20 Jun 2019 18:14:05 +0000 (03:14 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 20 Jun 2019 18:26:23 +0000 (03:26 +0900)
src/libsystemd/sd-path/sd-path.c

index 5b6bff1..12ff30e 100644 (file)
@@ -325,8 +325,9 @@ static int get_path(uint64_t type, char **buffer, const char **ret) {
 }
 
 _public_ int sd_path_home(uint64_t type, const char *suffix, char **path) {
-        char *buffer = NULL, *cc;
+        _cleanup_free_ char *buffer = NULL;
         const char *ret;
+        char *cc;
         int r;
 
         assert_return(path, -EINVAL);
@@ -351,7 +352,7 @@ _public_ int sd_path_home(uint64_t type, const char *suffix, char **path) {
                 if (!buffer)
                         return -ENOMEM;
 
-                *path = buffer;
+                *path = TAKE_PTR(buffer);
                 return 0;
         }
 
@@ -366,19 +367,16 @@ _public_ int sd_path_home(uint64_t type, const char *suffix, char **path) {
                                 return -ENOMEM;
                 }
 
-                *path = buffer;
+                *path = TAKE_PTR(buffer);
                 return 0;
         }
 
         suffix += strspn(suffix, "/");
         cc = path_join(ret, suffix);
-
-        free(buffer);
-
         if (!cc)
                 return -ENOMEM;
 
-        *path = cc;
+        *path = TAKE_PTR(cc);
         return 0;
 }