Не работая под отладчиком, я бы предположил, что q выходит за пределы диапазона от 0 до B_MAXCLASS-1. Функция, которая устанавливает q, ballocGetSize()
, не выполняет проверку границ, чтобы убедиться, что класс блока остается в границах.
Простое утверждение, проверяющее, что q находится в пределах границ, до того, как определение будет исключено, исключило бы такую возможность.