From: Benoît Ganne Date: Wed, 22 Apr 2020 17:14:03 +0000 (+0200) Subject: vcl: fix use-after-free X-Git-Tag: v19.08.3~87 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=0115d1b5116d24f80c9061ca9a18868e6a929554;p=vpp.git vcl: fix use-after-free 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) --- 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