Некоторые файлы распаковывает неправильно, например,
_PWAR10.TRC, 05_BI, последние 6 байт должны быть все 1.
Если закомментировать строчку 287, то распаковывает корректно.
o = readbits(&d, p, ps, 12); /* 0000111111111111b = 4095 max */
if ((d / 8) >= ps) { break; } /* <-- this is the bad line */
for (b = 0; b < c; b++) {
Спасибо за сообщение. Поправлено - переделан алгоритм проверки выхода за границы буфера упакованных данных. Теперь всё корректно должно распаковываться.
P.S. И спасибо, что живой! Напиши -=CHE@TER=-'у на почту, если сможешь.