diff --git a/zebra/main.c b/zebra/main.c index 6162d36b43..cca7b49962 100644 --- a/zebra/main.c +++ b/zebra/main.c @@ -182,8 +182,6 @@ static void sigint(void) SET_FLAG(zvrf->flags, ZEBRA_VRF_RETAIN); } } - if (zrouter.lsp_process_q) - work_queue_free_and_null(&zrouter.lsp_process_q); vrf_terminate(); diff --git a/zebra/zebra_router.c b/zebra/zebra_router.c index a80c573855..4ce756c953 100644 --- a/zebra/zebra_router.c +++ b/zebra/zebra_router.c @@ -235,6 +235,9 @@ void zebra_router_terminate(void) RB_FOREACH_SAFE (zrt, zebra_router_table_head, &zrouter.tables, tmp) zebra_router_free_table(zrt); + if (zrouter.lsp_process_q) + work_queue_free_and_null(&zrouter.lsp_process_q); + work_queue_free_and_null(&zrouter.ribq); meta_queue_free(zrouter.mq);