From 0115d1b5116d24f80c9061ca9a18868e6a929554 Mon Sep 17 00:00:00 2001 From: Benoît Ganne Date: Wed, 22 Apr 2020 19:14:03 +0200 Subject: vcl: fix use-after-free MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Make sure we disconnect from vlib prior to free-ing the last worker, as we'll need to access it. Type: fix Change-Id: Id5bdd17f0f5efa1ce52021b4270eb4f1e95cc61d Signed-off-by: Benoît Ganne (cherry picked from commit 38ab5672b599df8ef201ca6733c9b008c37fdfa3) --- src/vcl/vppcom.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/vcl/vppcom.c b/src/vcl/vppcom.c index 2c87dff6172..9bf009d7bfa 100644 --- a/src/vcl/vppcom.c +++ b/src/vcl/vppcom.c @@ -1103,12 +1103,13 @@ vppcom_app_destroy (void) /* *INDENT-OFF* */ pool_foreach (wrk, vcm->workers, ({ + if (pool_elts (vcm->workers) == 1) + vl_client_disconnect_from_vlib (); vcl_worker_cleanup (wrk, 0 /* notify vpp */ ); })); /* *INDENT-ON* */ vcl_elog_stop (vcm); - vl_client_disconnect_from_vlib (); /* * Free the heap and fix vcm -- cgit 1.2.3-korg