summaryrefslogtreecommitdiff
path: root/ospfd/ospf_zebra.c
diff options
context:
space:
mode:
Diffstat (limited to 'ospfd/ospf_zebra.c')
-rw-r--r--ospfd/ospf_zebra.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/ospfd/ospf_zebra.c b/ospfd/ospf_zebra.c
index 3f94e6b4e2..7e6146e0d3 100644
--- a/ospfd/ospf_zebra.c
+++ b/ospfd/ospf_zebra.c
@@ -1133,12 +1133,16 @@ void ospf_distribute_list_update(struct ospf *ospf, int type,
/* External info does not exist. */
ext = ospf_external_lookup(type, instance);
- if (!ext || !(rt = EXTERNAL_INFO(ext)))
+ if (!ext || !(rt = EXTERNAL_INFO(ext))) {
+ XFREE(MTYPE_OSPF_DIST_ARGS, args);
return;
+ }
/* If exists previously invoked thread, then let it continue. */
- if (ospf->t_distribute_update)
+ if (ospf->t_distribute_update) {
+ XFREE(MTYPE_OSPF_DIST_ARGS, args);
return;
+ }
/* Set timer. */
ospf->t_distribute_update = NULL;