upstream: a little more RB_TREE paranoia

OpenBSD-Commit-ID: 8dc2fd21eebd8830c4a4d25461ac4fe228e11156
This commit is contained in:
djm@openbsd.org 2024-06-11 01:23:25 +00:00 committed by Damien Miller
parent fc4e96b217
commit ef878d5879
No known key found for this signature in database

View File

@ -295,14 +295,14 @@ srclimit_remove_expired_penalties(void)
while (npenalties > (size_t)penalty_cfg.max_sources) {
if ((p = RB_MIN(penalties_by_expiry,
&penalties_by_expiry)) == NULL)
break; /* shouldn't happen */
fatal_f("internal error: penalty tables corrupt (find)");
bits = p->addr.af == AF_INET ? ipv4_masklen : ipv6_masklen;
addr_masklen_ntop(&p->addr, bits, s, sizeof(s));
debug3_f("overflow, remove %s", s);
if (RB_REMOVE(penalties_by_expiry,
&penalties_by_expiry, p) != p ||
RB_REMOVE(penalties_by_addr, &penalties_by_addr, p) != p)
fatal_f("internal error: penalty tables corrupt");
fatal_f("internal error: penalty tables corrupt (remove)");
free(p);
npenalties--;
}