Remove from the list of propagated bans on expiry
Fixes a use-after-free introduced in548e31d3b
, which fixed a related use-after-free introduced ina9536f755
.
This commit is contained in:
parent
b21c1403c6
commit
0a7faba63d
1 changed files with 5 additions and 2 deletions
|
@ -1135,7 +1135,7 @@ deactivate_conf(struct ConfItem *aconf, rb_dlink_node *ptr, time_t now)
|
||||||
del_from_resv_hash(aconf->host, aconf);
|
del_from_resv_hash(aconf->host, aconf);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (aconf->clients > 0 || (aconf->lifetime != 0 && now < aconf->lifetime))
|
if (aconf->lifetime != 0 && now < aconf->lifetime)
|
||||||
{
|
{
|
||||||
aconf->status |= CONF_ILLEGAL;
|
aconf->status |= CONF_ILLEGAL;
|
||||||
}
|
}
|
||||||
|
@ -1143,7 +1143,10 @@ deactivate_conf(struct ConfItem *aconf, rb_dlink_node *ptr, time_t now)
|
||||||
{
|
{
|
||||||
if (aconf->lifetime != 0)
|
if (aconf->lifetime != 0)
|
||||||
rb_dlinkDestroy(ptr, &prop_bans);
|
rb_dlinkDestroy(ptr, &prop_bans);
|
||||||
free_conf(aconf);
|
if (aconf->clients == 0)
|
||||||
|
free_conf(aconf);
|
||||||
|
else
|
||||||
|
aconf->status |= CONF_ILLEGAL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue