From 20f67c0925fd6b050efcf565714720679f1fcd33 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Thu, 12 Sep 2024 14:54:16 +0200 Subject: [PATCH] lib/generic/array: extend the return type of array_push*() In case of no error, the index is returned, but `int` isn't a great choice for returning array indices. (though I doubt that we can get anywhere near 2^31 elements in practice) Detected by Coverity. --- lib/generic/array.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/generic/array.h b/lib/generic/array.h index 9bea546be..eb1f7bc25 100644 --- a/lib/generic/array.h +++ b/lib/generic/array.h @@ -122,7 +122,7 @@ static inline void array_std_free(void *baton, void *p) * @return element index on success, <0 on failure */ #define array_push_mm(array, val, reserve, baton) \ - (int)((array).len < (array).cap ? ((array).at[(array).len] = (val), (array).len++) \ + (ssize_t)((array).len < (array).cap ? ((array).at[(array).len] = (val), (array).len++) \ : (array_reserve_mm(array, ((array).cap + 1), reserve, baton) < 0 ? -1 \ : ((array).at[(array).len] = (val), (array).len++))) -- 2.47.2