The BitpackStringDecoder::inputProcessAligned() function contains the following loop:
while (currentRecordIndex_ < maxRecordCount_ && nBytesRead < nBytesAvailable) {
...
}
The problem is that this loop may fill beyond the capacity of destBuffer_ if the file contains more records than the buffer. Perhaps the loop condition should be changed to something like this:
while (currentRecordIndex_ < maxRecordCount_ && nBytesRead < nBytesAvailable && destBuffer_->nextIndex() < destBuffer_->capacity()) {
...
}
here's an example file containing string data