diff options
Diffstat (limited to 'src/shared/specifier.c')
-rw-r--r-- | src/shared/specifier.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/shared/specifier.c b/src/shared/specifier.c index a4a4017f06..31390fbd89 100644 --- a/src/shared/specifier.c +++ b/src/shared/specifier.c @@ -464,7 +464,8 @@ int specifier_var_tmp_dir(char specifier, const void *data, const char *root, co } int specifier_escape_strv(char **l, char ***ret) { - char **z, **p, **q; + _cleanup_strv_free_ char **z = NULL; + char **p, **q; assert(ret); @@ -480,14 +481,12 @@ int specifier_escape_strv(char **l, char ***ret) { for (p = l, q = z; *p; p++, q++) { *q = specifier_escape(*p); - if (!*q) { - strv_free(z); + if (!*q) return -ENOMEM; - } } *q = NULL; - *ret = z; + *ret = TAKE_PTR(z); return 0; } |