From: Yu Watanabe Date: Fri, 24 Jan 2025 13:53:13 +0000 (+0900) Subject: sd-json: silence false positive warning by coverity X-Git-Tag: v258-rc1~1488 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9b3715d529e4eba79e19c87e85583f7be5ee2c95;p=thirdparty%2Fsystemd.git sd-json: silence false positive warning by coverity An object json is a set of key and value pair, hence has its number of element is multiple of two, and we know at least two elements there. Follow-up for b6a2df630701de0bcf77850ced213d7fc3d0c4de. Fixes CID#1590724 --- diff --git a/src/libsystemd/sd-json/sd-json.c b/src/libsystemd/sd-json/sd-json.c index 051ab8d69fc..c25a2cdbbcf 100644 --- a/src/libsystemd/sd-json/sd-json.c +++ b/src/libsystemd/sd-json/sd-json.c @@ -2142,7 +2142,7 @@ _public_ int sd_json_variant_unset_field(sd_json_variant **v, const char *field) _cleanup_free_ sd_json_variant **array = NULL; size_t k = 0; - for (size_t i = 0; i < sd_json_variant_elements(*v); i += 2) { + for (size_t i = 0, n = sd_json_variant_elements(*v); i < n; i += 2) { sd_json_variant *p; p = sd_json_variant_by_index(*v, i); @@ -2151,7 +2151,8 @@ _public_ int sd_json_variant_unset_field(sd_json_variant **v, const char *field) if (streq(sd_json_variant_string(p), field)) { if (!array) { - array = new(sd_json_variant*, sd_json_variant_elements(*v) - 2); + assert(n >= 2); + array = new(sd_json_variant*, n - 2); if (!array) return -ENOMEM;