From 07737617a18d33f3310329384423a53dd761218f Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 3 Jan 2019 12:19:31 +0100 Subject: [PATCH] json: beef up strv parser to also accept a single string instead of an array of strings Let's be permissive in what we accept and take a single string instead of an array of strings, when a string is requested, too. --- src/shared/json.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/shared/json.c b/src/shared/json.c index 7393c100cd..c3efb11bbb 100644 --- a/src/shared/json.c +++ b/src/shared/json.c @@ -3420,6 +3420,16 @@ int json_dispatch_strv(const char *name, JsonVariant *variant, JsonDispatchFlags return 0; } + /* Let's be flexible here: accept a single string in place of a single-item array */ + if (json_variant_is_string(variant)) { + l = strv_new(json_variant_string(variant)); + if (!l) + return log_oom(); + + strv_free_and_replace(*s, l); + return 0; + } + if (!json_variant_is_array(variant)) return json_log(variant, SYNTHETIC_ERRNO(EINVAL), flags, "JSON field '%s' is not an array.", strna(name));