From 221d6f131d644b2d14f741c4b3031f53b8a8ff03 Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Wed, 7 Nov 2018 20:46:38 -0800 Subject: [PATCH] vlib: use index to free suspended frame Avoids crash if suspended_process_frames grows. Change-Id: Id26ef0dd0dd001b997c531c4dec004e7e7989670 Signed-off-by: Florin Coras --- src/vlib/main.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/vlib/main.c b/src/vlib/main.c index df7c2f1e007..1b9eb39bf95 100644 --- a/src/vlib/main.c +++ b/src/vlib/main.c @@ -1416,9 +1416,8 @@ dispatch_suspended_process (vlib_main_t * vm, ASSERT (p->flags & (VLIB_PROCESS_IS_SUSPENDED_WAITING_FOR_CLOCK | VLIB_PROCESS_IS_SUSPENDED_WAITING_FOR_EVENT)); - pf = - pool_elt_at_index (nm->suspended_process_frames, - p->suspended_process_frame_index); + pf = pool_elt_at_index (nm->suspended_process_frames, + p->suspended_process_frame_index); node_runtime = &p->node_runtime; node = vlib_get_node (vm, node_runtime->node_index); @@ -1454,8 +1453,9 @@ dispatch_suspended_process (vlib_main_t * vm, else { p->flags &= ~VLIB_PROCESS_IS_RUNNING; + pool_put_index (nm->suspended_process_frames, + p->suspended_process_frame_index); p->suspended_process_frame_index = ~0; - pool_put (nm->suspended_process_frames, pf); } t = clib_cpu_time_now (); -- 2.16.6