piDecompress() appended original size as 8-byte ullong at the end of compressed data, but passed zba.size() (including the 8 bytes) to uncompress(). This fed trailing metadata as part of the zlib stream. Fix: subtract sizeof(ullong) from source length.