summaryrefslogtreecommitdiff
path: root/src/shared/user-record.c
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2021-02-15 14:09:30 +0100
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2021-02-15 20:43:41 +0100
commitaaf057c4bbc6055040d7d2c1ec3655ff89249ebd (patch)
tree7981275d953245cf8908b64bd753d3bcd13c5da4 /src/shared/user-record.c
parentc39e36203ff79a831c93dfb9380c967cd7fdbb99 (diff)
downloadsystemd-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.c12
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) {