From: Lennart Poettering Date: Thu, 23 Oct 2025 09:07:16 +0000 (+0200) Subject: sd-varlink: fix sd_varlink_collect() with empty replies X-Git-Tag: v259-rc1~193^2~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b64eb98054b04291b25da0498f336a1d26052bec;p=thirdparty%2Fsystemd.git sd-varlink: fix sd_varlink_collect() with empty replies Follow-up for: 48c64813ec6bdbe536b7a62281292ea5981295ba --- diff --git a/src/libsystemd/sd-varlink/sd-varlink.c b/src/libsystemd/sd-varlink/sd-varlink.c index f55112d1c49..18b26f657da 100644 --- a/src/libsystemd/sd-varlink/sd-varlink.c +++ b/src/libsystemd/sd-varlink/sd-varlink.c @@ -2421,6 +2421,15 @@ _public_ int sd_varlink_collect_full( if (sd_json_variant_elements(collected) >= VARLINK_COLLECT_MAX) return varlink_log_errno(v, SYNTHETIC_ERRNO(E2BIG), "Number of reply messages grew too large (%zu) while collecting.", sd_json_variant_elements(collected)); + _cleanup_(sd_json_variant_unrefp) sd_json_variant *empty = NULL; + if (!p) { + r = sd_json_variant_new_array(&empty, /* array= */ NULL, /* n= */ 0); + if (r < 0) + return r; + + p = empty; + } + r = sd_json_variant_append_array(&collected, p); if (r < 0) return varlink_log_errno(v, r, "Failed to append JSON object to array: %m");