]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
env-util: use _cleanup_ in strv_env_delete()
authorDavid Tardon <dtardon@redhat.com>
Fri, 21 Apr 2023 12:24:26 +0000 (14:24 +0200)
committerDavid Tardon <dtardon@redhat.com>
Thu, 27 Apr 2023 19:42:38 +0000 (21:42 +0200)
src/basic/env-util.c

index 41fad1d1b9e118ab6dddea9e721e7c073c0ca601..848b727a8f7dd446b1a8abbe366e60e613fc908f 100644 (file)
@@ -266,7 +266,7 @@ static bool env_entry_has_name(const char *entry, const char *name) {
 
 char **strv_env_delete(char **x, size_t n_lists, ...) {
         size_t n, i = 0;
-        char **r;
+        _cleanup_strv_free_ char **r = NULL;
         va_list ap;
 
         /* Deletes every entry from x that is mentioned in the other
@@ -291,10 +291,8 @@ char **strv_env_delete(char **x, size_t n_lists, ...) {
                 va_end(ap);
 
                 r[i] = strdup(*k);
-                if (!r[i]) {
-                        strv_free(r);
+                if (!r[i])
                         return NULL;
-                }
 
                 i++;
                 continue;
@@ -307,7 +305,7 @@ char **strv_env_delete(char **x, size_t n_lists, ...) {
 
         assert(i <= n);
 
-        return r;
+        return TAKE_PTR(r);
 }
 
 char **strv_env_unset(char **l, const char *p) {