diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2021-02-15 14:09:30 +0100 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2021-02-15 20:43:41 +0100 |
commit | aaf057c4bbc6055040d7d2c1ec3655ff89249ebd (patch) | |
tree | 7981275d953245cf8908b64bd753d3bcd13c5da4 /src/shared/user-record.c | |
parent | c39e36203ff79a831c93dfb9380c967cd7fdbb99 (diff) | |
download | systemd-aaf057c4bbc6055040d7d2c1ec3655ff89249ebd.tar.gz |
basic/env-util: add variant of strv_env_replace() that does strdup internally
Diffstat (limited to 'src/shared/user-record.c')
-rw-r--r-- | src/shared/user-record.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/src/shared/user-record.c b/src/shared/user-record.c index 0b07e4427e..569102f5f2 100644 --- a/src/shared/user-record.c +++ b/src/shared/user-record.c @@ -620,7 +620,6 @@ static int json_dispatch_environment(const char *name, JsonVariant *variant, Jso return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL), "JSON field '%s' is not an array.", strna(name)); for (i = 0; i < json_variant_elements(variant); i++) { - _cleanup_free_ char *c = NULL; JsonVariant *e; const char *a; @@ -633,19 +632,12 @@ static int json_dispatch_environment(const char *name, JsonVariant *variant, Jso if (!env_assignment_is_valid(a)) return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL), "JSON field '%s' is not an array of environment variables.", strna(name)); - c = strdup(a); - if (!c) - return json_log_oom(variant, flags); - - r = strv_env_replace(&n, c); + r = strv_env_replace_strdup(&n, a); if (r < 0) return json_log_oom(variant, flags); - - c = NULL; } - strv_free_and_replace(*l, n); - return 0; + return strv_free_and_replace(*l, n); } int json_dispatch_user_disposition(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata) { |