From: David Tardon Date: Thu, 10 May 2018 12:08:35 +0000 (+0200) Subject: basic: use automatic cleanup more X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=61870307cb918dc3f443611d113e2db2f108f869;p=elogind.git basic: use automatic cleanup more --- diff --git a/src/basic/env-util.c b/src/basic/env-util.c index 243a76534..90d2f06a8 100644 --- a/src/basic/env-util.c +++ b/src/basic/env-util.c @@ -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) {