2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-30 14:07:59 +00:00

Don't skip the counting if fcount_incr() is called with force==true (v2)

The fcount_incr() was not increasing counter->count when force was set
to true, but fcount_decr() would try to decrease the counter leading to
underflow and assertion failure.  Swap the order of the arguments in the
condition, so the !force is evaluated after incrementing the .count.
This commit is contained in:
Ondřej Surý
2024-08-13 12:48:23 +02:00
parent f6fb9a4969
commit 8e86e55af1

View File

@@ -1487,7 +1487,7 @@ fcount_incr(fetchctx_t *fctx, bool force) {
INSIST(spill > 0);
LOCK(&counter->lock);
if (!force && ++counter->count > spill) {
if (++counter->count > spill && !force) {
counter->count--;
INSIST(counter->count > 0);
counter->dropped++;