summaryrefslogtreecommitdiffstats
path: root/ospf6d/ospf6_route.c
diff options
context:
space:
mode:
authorPat Ruddy <pat@voltanet.io>2021-05-25 10:38:26 +0200
committerPat Ruddy <pat@voltanet.io>2021-05-27 13:57:25 +0200
commitde4a0bdaa6d8dbdea3cbe96056e3c0cbbbf9619b (patch)
treee8fdfe1c24637be0c00112a95c03c865a5bfcc01 /ospf6d/ospf6_route.c
parentMerge pull request #8738 from gromit1811/bugfix_ospf6_set_tag (diff)
downloadfrr-de4a0bdaa6d8dbdea3cbe96056e3c0cbbbf9619b.tar.xz
frr-de4a0bdaa6d8dbdea3cbe96056e3c0cbbbf9619b.zip
ospf6: fix memory leak in ospf6_abr_examin_summary
Ensure that if allocated route is not added to a table then it is deleted to avoid leaking memory. Add a new memory type for route table so that ospf6 routes can be distinguished in the show memory output in isolation. Signed-off-by: Pat Ruddy <pat@voltanet.io>
Diffstat (limited to 'ospf6d/ospf6_route.c')
-rw-r--r--ospf6d/ospf6_route.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/ospf6d/ospf6_route.c b/ospf6d/ospf6_route.c
index 2daf119c5..908011c94 100644
--- a/ospf6d/ospf6_route.c
+++ b/ospf6d/ospf6_route.c
@@ -39,6 +39,7 @@
#include "ospf6_zebra.h"
DEFINE_MTYPE_STATIC(OSPF6D, OSPF6_ROUTE, "OSPF6 route");
+DEFINE_MTYPE_STATIC(OSPF6D, OSPF6_ROUTE_TABLE, "OSPF6 route table");
DEFINE_MTYPE_STATIC(OSPF6D, OSPF6_NEXTHOP, "OSPF6 nexthop");
DEFINE_MTYPE_STATIC(OSPF6D, OSPF6_PATH, "OSPF6 Path");
@@ -1021,7 +1022,8 @@ void ospf6_route_remove_all(struct ospf6_route_table *table)
struct ospf6_route_table *ospf6_route_table_create(int s, int t)
{
struct ospf6_route_table *new;
- new = XCALLOC(MTYPE_OSPF6_ROUTE, sizeof(struct ospf6_route_table));
+ new = XCALLOC(MTYPE_OSPF6_ROUTE_TABLE,
+ sizeof(struct ospf6_route_table));
new->table = route_table_init();
new->scope_type = s;
new->table_type = t;
@@ -1033,7 +1035,7 @@ void ospf6_route_table_delete(struct ospf6_route_table *table)
ospf6_route_remove_all(table);
bf_free(table->idspace);
route_table_finish(table->table);
- XFREE(MTYPE_OSPF6_ROUTE, table);
+ XFREE(MTYPE_OSPF6_ROUTE_TABLE, table);
}