From 84519c816445c7105d4a70f43b92b3ee5ab3802d Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Tue, 10 Oct 2017 13:33:14 -0400 Subject: [PATCH 1/3] ospfd: Fix ships in the night PR's and list_delete list_delete_and_null should be used. Signed-off-by: Donald Sharp --- ospfd/ospfd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c index 069ba96be6..0a9a53dbb2 100644 --- a/ospfd/ospfd.c +++ b/ospfd/ospfd.c @@ -634,7 +634,7 @@ static void ospf_finish_final(struct ospf *ospf) /* Reset interface. */ for (ALL_LIST_ELEMENTS(ospf->oiflist, node, nnode, oi)) ospf_if_free(oi); - list_delete(ospf->oiflist); + list_delete_and_null(&ospf->oiflist); /* De-Register VRF */ ospf_zebra_vrf_deregister(ospf); @@ -769,7 +769,7 @@ static void ospf_finish_final(struct ospf *ospf) if (!CHECK_FLAG(om->options, OSPF_MASTER_SHUTDOWN)) instance = ospf->instance; - list_delete(ospf->oi_write_q); + list_delete_and_null(&ospf->oi_write_q); ospf_delete(ospf); From 5b51cf7c9c05b3c54f76c362110ec46bcfa39dab Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Tue, 10 Oct 2017 17:08:32 -0400 Subject: [PATCH 2/3] ospfd: We should not be deleting ospf->oiflist 2 times The ospf->oiflist deletion is happening 2 times now. Let's delete it once only. Signed-off-by: Donald Sharp --- ospfd/ospfd.c | 1 - 1 file changed, 1 deletion(-) diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c index 0a9a53dbb2..e74f13c961 100644 --- a/ospfd/ospfd.c +++ b/ospfd/ospfd.c @@ -737,7 +737,6 @@ static void ospf_finish_final(struct ospf *ospf) list_delete_and_null(&ospf->areas); list_delete_and_null(&ospf->oi_write_q); - list_delete_and_null(&ospf->oiflist); for (i = ZEBRA_ROUTE_SYSTEM; i <= ZEBRA_ROUTE_MAX; i++) { struct list *ext_list; From 2e5faea3720f43154601e861f4c5df463e5d4ca2 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Tue, 10 Oct 2017 17:35:19 -0400 Subject: [PATCH 3/3] ospfd: Do not delete write_q 2 times either Signed-off-by: Donald Sharp --- ospfd/ospfd.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c index e74f13c961..88833e64de 100644 --- a/ospfd/ospfd.c +++ b/ospfd/ospfd.c @@ -768,8 +768,6 @@ static void ospf_finish_final(struct ospf *ospf) if (!CHECK_FLAG(om->options, OSPF_MASTER_SHUTDOWN)) instance = ospf->instance; - list_delete_and_null(&ospf->oi_write_q); - ospf_delete(ospf); if (ospf->name) {