mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-02-02 09:47:03 +03:00
network: fix use-after-free in link_free
Freeing a link removes it both from addresses and addresses_foreign, causing SIGSEGV if one of the sets is freed.
This commit is contained in:
parent
2c80779e33
commit
4701725cd5
@ -349,12 +349,12 @@ static void link_free(Link *link) {
|
||||
while (!set_isempty(link->addresses))
|
||||
address_free(set_first(link->addresses));
|
||||
|
||||
set_free(link->addresses);
|
||||
|
||||
while (!set_isempty(link->addresses_foreign))
|
||||
address_free(set_first(link->addresses_foreign));
|
||||
|
||||
set_free(link->addresses_foreign);
|
||||
link->addresses = set_free(link->addresses);
|
||||
|
||||
link->addresses_foreign = set_free(link->addresses_foreign);
|
||||
|
||||
while ((address = link->pool_addresses)) {
|
||||
LIST_REMOVE(addresses, link->pool_addresses, address);
|
||||
|
Loading…
x
Reference in New Issue
Block a user