Make sure the busy counts don't underflow or overflow.
Signed-off-by: Keith Packard <keithp@keithp.com>
bufio->block = 0xffffffff;
bufio = NULL;
}
- }
+ } else
+ ao_panic(AO_PANIC_BUFIO);
}
if (bufio) {
bufio->busy++;
+ if (!bufio->busy)
+ ao_panic(AO_PANIC_BUFIO);
buf = ao_bufio_to_buf(bufio);
}
ao_bufio_unlock();
ao_bufio_lock();
bufio = ao_buf_to_bufio(buf);
+ if (!bufio->busy)
+ ao_panic(AO_PANIC_BUFIO);
+
DBG ("idle buffer %d write %d\n", ao_bufio_to_num(bufio), write);
bufio->dirty |= write;
if (!--bufio->busy) {