chiark / gitweb /
basic: use automatic cleanup more
authorDavid Tardon <dtardon@redhat.com>
Thu, 10 May 2018 12:08:35 +0000 (14:08 +0200)
committerSven Eden <yamakuzure@gmx.net>
Fri, 24 Aug 2018 14:47:08 +0000 (16:47 +0200)
src/basic/env-util.c

index 243a76534fe2180aae349183d2d096198c8c3be7..90d2f06a8f3850d05a396235465b3be80d4a27c5 100644 (file)
@@ -418,7 +418,8 @@ int strv_env_replace(char ***l, char *p) {
 
 char **strv_env_set(char **x, const char *p) {
 
-        char **k, **r;
+        char **k;
+        _cleanup_strv_free_ char **r = NULL;
         char* m[2] = { (char*) p, NULL };
 
         /* Overrides the env var setting of p, returns a new copy */
@@ -429,18 +430,14 @@ char **strv_env_set(char **x, const char *p) {
 
         k = r;
         if (env_append(r, &k, x) < 0)
-                goto fail;
+                return NULL;
 
         if (env_append(r, &k, m) < 0)
-                goto fail;
+                return NULL;
 
         *k = NULL;
 
-        return r;
-
-fail:
-        strv_free(r);
-        return NULL;
+        return TAKE_PTR(r);
 }
 
 char *strv_env_get_n(char **l, const char *name, size_t k, unsigned flags) {