[v1,1/1] malloc: handle invalid socket ID's when allocating
Checks
Commit Message
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.burakov@intel.com>
---
lib/eal/common/malloc_heap.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
Comments
16/06/2025 11:55, Anatoly Burakov:
> 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.burakov@intel.com>
Applied, thanks.
@@ -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,