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