mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-02-04 17:47:03 +03:00
network: check stored object is euivalent to what we want to remove
When object A is stored in Manager::rules and B is in ::rules_foreign, and compare function for the object cannot distinguish them, then freeing A causes B to be removed from rules_foreign or vice versa. Hopefully fixes #12731.
This commit is contained in:
parent
9f08a578a8
commit
9ee92e7ed8
@ -46,8 +46,10 @@ void routing_policy_rule_free(RoutingPolicyRule *rule) {
|
||||
}
|
||||
|
||||
if (rule->manager) {
|
||||
set_remove(rule->manager->rules, rule);
|
||||
set_remove(rule->manager->rules_foreign, rule);
|
||||
if (set_get(rule->manager->rules, rule) == rule)
|
||||
set_remove(rule->manager->rules, rule);
|
||||
if (set_get(rule->manager->rules_foreign, rule) == rule)
|
||||
set_remove(rule->manager->rules_foreign, rule);
|
||||
}
|
||||
|
||||
network_config_section_free(rule->section);
|
||||
|
Loading…
x
Reference in New Issue
Block a user