From 27836144f427e3a7ccc7914531497df506153e63 Mon Sep 17 00:00:00 2001 From: Christian Hopps Date: Thu, 28 Sep 2023 12:10:31 -0400 Subject: [PATCH] lib: use XREALLOC over realloc avoid coverity warning I believe coverity is complaining that the current code does not handle the realloc fail case, in which case the original pointer is not freed, but NULL is returned. The code assert()s it's not failed but that is not strong enough it needs to abort which XREALLOC does and is a better integration into FRR-inrfa anyway. Signed-off-by: Christian Hopps --- lib/darr.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/darr.c b/lib/darr.c index 2c8b7b8778a1..56b818580236 100644 --- a/lib/darr.c +++ b/lib/darr.c @@ -7,6 +7,9 @@ */ #include #include "darr.h" +#include "memory.h" + +DEFINE_MTYPE_STATIC(LIB, DARR, "Dynamic Array"); void __dar_resize(void **a, uint count, size_t esize); @@ -56,15 +59,12 @@ void *__darr_resize(void *a, uint count, size_t esize) uint ncount = darr_next_count(count, esize); size_t osz = (a == NULL) ? 0 : darr_size(darr_cap(a), esize); size_t sz = darr_size(ncount, esize); - struct darr_metadata *dm = realloc(a ? _darr_meta(a) : NULL, sz); - /* do *not* use a */ + struct darr_metadata *dm = XREALLOC(MTYPE_DARR, + a ? _darr_meta(a) : NULL, sz); - assert(dm); if (sz > osz) memset((char *)dm + osz, 0, sz - osz); - dm->cap = ncount; - return (void *)(dm + 1); }