networkd: fix use-after-free
Elements must be removed from the hashtable before they are freed.
This commit is contained in:
parent
93aef81600
commit
2c36be2f4b
|
@ -172,8 +172,10 @@ void network_free(Network *network) {
|
||||||
|
|
||||||
netdev_unref(network->bond);
|
netdev_unref(network->bond);
|
||||||
|
|
||||||
HASHMAP_FOREACH(netdev, network->stacked_netdevs, i)
|
HASHMAP_FOREACH(netdev, network->stacked_netdevs, i) {
|
||||||
|
hashmap_remove(network->stacked_netdevs, netdev->ifname);
|
||||||
netdev_unref(netdev);
|
netdev_unref(netdev);
|
||||||
|
}
|
||||||
hashmap_free(network->stacked_netdevs);
|
hashmap_free(network->stacked_netdevs);
|
||||||
|
|
||||||
while ((route = network->static_routes))
|
while ((route = network->static_routes))
|
||||||
|
|
Loading…
Reference in a new issue