From: Philippe Guibert Date: Wed, 24 Jan 2018 18:06:06 +0000 (+0100) Subject: zebra: fix assert mpls when terminating zebra X-Git-Tag: frr-5.0-dev~209^2~20 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=40289934f1b07acf934f26aec63ed523e6889a1d;p=mirror%2Ffrr.git zebra: fix assert mpls when terminating zebra The assert appears in zebra_mpls.c when checking default zebra_vrf. It appears that when the mpls entries are flushed, it gets the default vrf which is already flushed by vrf_terminate() function. In order to avoid that assert to trigger a crash, the mpls flush is called before vrf termination. Signed-off-by: Philippe Guibert --- diff --git a/zebra/main.c b/zebra/main.c index 3353290816..9cad913f4b 100644 --- a/zebra/main.c +++ b/zebra/main.c @@ -138,6 +138,8 @@ static void sigint(void) if (zvrf) SET_FLAG(zvrf->flags, ZEBRA_VRF_RETAIN); } + if (zebrad.lsp_process_q) + work_queue_free(zebrad.lsp_process_q); vrf_terminate(); ns_walk_func(zebra_ns_disabled); @@ -149,8 +151,6 @@ static void sigint(void) list_delete_and_null(&zebrad.client_list); work_queue_free(zebrad.ribq); - if (zebrad.lsp_process_q) - work_queue_free(zebrad.lsp_process_q); meta_queue_free(zebrad.mq); frr_fini();