From 47e2dc3168cb0509d8d61f5dbeffaa3c252685b5 Mon Sep 17 00:00:00 2001 From: Tom Gundersen Date: Thu, 8 May 2014 19:28:17 +0200 Subject: [PATCH] networkd: network - do reference counting on netdevs --- src/network/networkd-network.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c index 4493359d7..a45209683 100644 --- a/src/network/networkd-network.c +++ b/src/network/networkd-network.c @@ -145,6 +145,7 @@ int network_load(Manager *manager) { } void network_free(Network *network) { + NetDev *netdev; Route *route; Address *address; Iterator i; @@ -167,8 +168,16 @@ void network_free(Network *network) { set_free(network->dns); + netdev_unref(network->bridge); + + netdev_unref(network->bond); + + HASHMAP_FOREACH(netdev, network->vlans, i) + netdev_unref(netdev); hashmap_free(network->vlans); + HASHMAP_FOREACH(netdev, network->macvlans, i) + netdev_unref(netdev); hashmap_free(network->macvlans); while ((route = network->static_routes)) @@ -317,5 +326,7 @@ int config_parse_netdev(const char *unit, assert_not_reached("Can not parse NetDev"); } + netdev_ref(netdev); + return 0; } -- 2.30.2