From 409adfc2256d483b43b4cf92025e575212ea3372 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Mon, 5 Sep 2011 05:53:07 +0200 Subject: [PATCH] free routes and addresses --- interface-ip.c | 3 +++ interface-ip.h | 1 + 2 files changed, 4 insertions(+) diff --git a/interface-ip.c b/interface-ip.c index 6decaea..b86acb5 100644 --- a/interface-ip.c +++ b/interface-ip.c @@ -34,6 +34,7 @@ void interface_del_address(struct interface *iface, struct device_addr *addr) list_del(&addr->list); system_del_address(iface->l3_iface->dev, addr); + free(addr); } void interface_del_ctx_addr(struct interface *iface, void *ctx) @@ -58,6 +59,8 @@ void interface_del_route(struct interface *iface, struct device_route *route) { list_del(&route->list); system_del_route(iface->l3_iface->dev, route); + if (!route->keep) + free(route); } void interface_del_all_routes(struct interface *iface) diff --git a/interface-ip.h b/interface-ip.h index 2f5cf85..e83e327 100644 --- a/interface-ip.h +++ b/interface-ip.h @@ -31,6 +31,7 @@ struct device_route { void *ctx; enum device_addr_flags flags; + bool keep; unsigned int mask; union if_addr addr; -- 2.11.0