From 38ab5672b599df8ef201ca6733c9b008c37fdfa3 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 --- src/vcl/vppcom.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/vcl/vppcom.c b/src/vcl/vppcom.c index 186b08468fd..579cbc1657b 100644 --- a/src/vcl/vppcom.c +++ b/src/vcl/vppcom.c @@ -1224,12 +1224,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