From f12296baacce01d8ba851bd541b51aa16ca7fdd9 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Thu, 24 Sep 2020 07:56:13 -0400 Subject: [PATCH] isisd: Prevent usage after free Store the vrf_id so that when we free the area we can do further cleanup work. Signed-off-by: Donald Sharp --- isisd/isis_nb_config.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/isisd/isis_nb_config.c b/isisd/isis_nb_config.c index 0988fe8578..6edbc2956a 100644 --- a/isisd/isis_nb_config.c +++ b/isisd/isis_nb_config.c @@ -80,14 +80,18 @@ int isis_instance_create(struct nb_cb_create_args *args) int isis_instance_destroy(struct nb_cb_destroy_args *args) { struct isis_area *area; + vrf_id_t vrf_id; if (args->event != NB_EV_APPLY) return NB_OK; area = nb_running_unset_entry(args->dnode); + + vrf_id = area->isis->vrf_id; + isis_area_destroy(area); /* remove ldp-sync config */ - if (area->isis->vrf_id == VRF_DEFAULT) + if (vrf_id == VRF_DEFAULT) isis_ldp_sync_gbl_exit(true); return NB_OK; -- 2.39.5