diff options
Diffstat (limited to 'src/libsystemd')
-rw-r--r-- | src/libsystemd/sd-json/sd-json.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/src/libsystemd/sd-json/sd-json.c b/src/libsystemd/sd-json/sd-json.c index 5e9c1ba15b..293df301a2 100644 --- a/src/libsystemd/sd-json/sd-json.c +++ b/src/libsystemd/sd-json/sd-json.c @@ -11,6 +11,7 @@ #include "alloc-util.h" #include "ansi-color.h" +#include "env-util.h" #include "errno-util.h" #include "escape.h" #include "ether-addr-util.h" @@ -3867,22 +3868,13 @@ _public_ int sd_json_buildv(sd_json_variant **ret, va_list ap) { l = va_arg(ap, char **); - _cleanup_strv_free_ char **el = NULL; - STRV_FOREACH_PAIR(x, y, l) { - char *n = NULL; - - n = strjoin(*x, "=", *y); - if (!n) { - r = -ENOMEM; - goto finish; - } + if (current->n_suppress == 0) { + _cleanup_strv_free_ char **el = NULL; - r = strv_consume(&el, n); + r = strv_env_get_merged(l, &el); if (r < 0) goto finish; - } - if (current->n_suppress == 0) { r = sd_json_variant_new_array_strv(&add, el); if (r < 0) goto finish; |