From e6b65f90ba4bc3b51b3585abc70c74847a4a6177 Mon Sep 17 00:00:00 2001 From: Erik Gabriel Carrillo Date: Wed, 24 Apr 2019 09:33:50 -0500 Subject: [PATCH] timer: fix pointer to local outside scope A null array is allowed to be passed as one of the parameters to rte_timer_alt_manage() as a convenience. When that happened, an anonymous array was created using compound literal syntax, and Coverity detected that the object was out of scope in later uses of it. Create an object in the proper scope instead. Coverity issue: 337919 Fixes: c0749f7096c7 ("timer: allow management in shared memory") Signed-off-by: Erik Gabriel Carrillo --- lib/librte_timer/rte_timer.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/librte_timer/rte_timer.c b/lib/librte_timer/rte_timer.c index eb460098b6..d443b8caf8 100644 --- a/lib/librte_timer/rte_timer.c +++ b/lib/librte_timer/rte_timer.c @@ -826,6 +826,7 @@ rte_timer_alt_manage(uint32_t timer_data_id, int nb_poll_lcores, rte_timer_alt_manage_cb_t f) { + unsigned int default_poll_lcores[] = {rte_lcore_id()}; union rte_timer_status status; struct rte_timer *tim, *next_tim, **pprev; struct rte_timer *run_first_tims[RTE_MAX_LCORE]; @@ -847,8 +848,8 @@ rte_timer_alt_manage(uint32_t timer_data_id, __TIMER_STAT_ADD(data->priv_timer, manage, 1); if (poll_lcores == NULL) { - poll_lcores = (unsigned int []){rte_lcore_id()}; - nb_poll_lcores = 1; + poll_lcores = default_poll_lcores; + nb_poll_lcores = RTE_DIM(default_poll_lcores); } for (i = 0; i < nb_poll_lcores; i++) { -- 2.20.1