On Thu, May 11, 2017 at 11:03:43PM -0700, Tonghao Zhang wrote:
> If the socket_id is invalid (e.g. -2, -3), the
> memzone_reserve_aligned_thread_unsafe should return the
> EINVAL and not ENOMEM. To avoid it, we should check the
> socket_id before calling malloc_heap_alloc.
> 
> Signed-off-by: Tonghao Zhang <n...@opencloud.tech>
> ---
>  lib/librte_eal/common/eal_common_memzone.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/librte_eal/common/eal_common_memzone.c 
> b/lib/librte_eal/common/eal_common_memzone.c
> index 64f4e0a..3026e36 100644
> --- a/lib/librte_eal/common/eal_common_memzone.c
> +++ b/lib/librte_eal/common/eal_common_memzone.c
> @@ -189,7 +189,8 @@
>               return NULL;
>       }
>  
> -     if ((socket_id != SOCKET_ID_ANY) && (socket_id >= RTE_MAX_NUMA_NODES)) {
> +     if ((socket_id != SOCKET_ID_ANY) &&
> +         (socket_id >= RTE_MAX_NUMA_NODES || socket_id < 0)) {
>               rte_errno = EINVAL;
>               return NULL;
>       }
> -- 

Looks a sensible thing to do.

Acked-by: Bruce Richardson <bruce.richard...@intel.com>

Reply via email to