Description
The constructor of StringDictionaryColumnReader used to have a check for negative dictionary entry lengths:
https://github.com/apache/orc/blob/branch-1.5/c%2B%2B/src/ColumnReader.cc#L523-L524
for (uint64_t i = 1; i < dictionaryCount + 1; ++i) { if (lengthArray[i] < 0) throw ParseError("Negative dictionary entry length"); lengthArray[i] += lengthArray[i - 1]; }
However we don't have it on current master. It causes a problem because it will use a negative value (casted to unsigned) to allocate a DataBuffer:
dictionary->dictionaryBlob.resize(static_cast<uint64_t>(lengthArray[dictSize]))
Attachments
Issue Links
- Blocked
-
IMPALA-9288 Crash due to memory leak in scan node of orc scanner
- Resolved
- links to