On Thu, 7 Aug 2025 10:49:36 +0800
Dengdui Huang <huangdeng...@huawei.com> wrote:

> diff --git a/lib/eal/common/eal_common_launch.c 
> b/lib/eal/common/eal_common_launch.c
> index a7deac6ecd..be7226e4b6 100644
> --- a/lib/eal/common/eal_common_launch.c
> +++ b/lib/eal/common/eal_common_launch.c
> @@ -36,8 +36,15 @@ RTE_EXPORT_SYMBOL(rte_eal_remote_launch)
>  int
>  rte_eal_remote_launch(lcore_function_t *f, void *arg, unsigned int worker_id)
>  {
> +     enum rte_lcore_role_t role;
>       int rc = -EBUSY;
>  
> +     role = lcore_config[worker_id].core_role;
> +     if (role != ROLE_RTE && role != ROLE_SERVICE) {
> +             rc = -EINVAL;
> +             goto finish;
> +     }

worker_id could be any value, if it was out of the range of the array
you would end up reading junk.

Reply via email to