This issue was reported by static analysis. It is a false positive, because both `rte_socket_count` and `rte_socket_id_by_idx` only report information about physical sockets (so return value of -1 cannot happen, as we only get into this function when socket ID parameter is -1, which excludes external memory from consideration), but to avoid future false positives, we can fix it here.
Coverity issue: 470137 Signed-off-by: Anatoly Burakov <anatoly.bura...@intel.com> --- lib/eal/common/malloc_heap.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/eal/common/malloc_heap.c b/lib/eal/common/malloc_heap.c index f87a947a42..13a56e490e 100644 --- a/lib/eal/common/malloc_heap.c +++ b/lib/eal/common/malloc_heap.c @@ -710,8 +710,9 @@ malloc_get_numa_socket(void) /* for control threads, return first socket where memory is available */ for (idx = 0; idx < rte_socket_count(); idx++) { - socket_id = rte_socket_id_by_idx(idx); - if (conf->numa_mem[socket_id] != 0) + int ret = rte_socket_id_by_idx(idx); + socket_id = (unsigned int)ret; + if (ret != -1 && conf->numa_mem[socket_id] != 0) return socket_id; } /* We couldn't quickly find a NUMA node where memory was available, -- 2.47.1