aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSalim Achouche <sachouche2@gmail.com>2019-01-30 14:26:58 -0800
committerAman Sinha <asinha@maprtech.com>2019-02-01 10:18:35 -0800
commitb1594cbcc5491eaa6675c3fc5fb8b7eee6430d19 (patch)
tree1d094a18d446b837d68646fccad9591ab1d66e38
parent9c82e06b93cf39bbbe11b90aaa6713806fa4aa36 (diff)
DRILL-7018: Fixed Parquet buffer overflow when reading timestamp column
close apache/drill#1630
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/columnreaders/NullableFixedByteAlignedReaders.java5
1 files changed, 3 insertions, 2 deletions
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/columnreaders/NullableFixedByteAlignedReaders.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/columnreaders/NullableFixedByteAlignedReaders.java
index 5d8c9c2c4..886721eb3 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/columnreaders/NullableFixedByteAlignedReaders.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/columnreaders/NullableFixedByteAlignedReaders.java
@@ -111,6 +111,9 @@ public class NullableFixedByteAlignedReaders {
NullableFixedBinaryAsTimeStampReader(ParquetRecordReader parentReader, ColumnDescriptor descriptor,
ColumnChunkMetaData columnChunkMetaData, boolean fixedLength, NullableTimeStampVector v, SchemaElement schemaElement) throws ExecutionSetupException {
super(parentReader, descriptor, columnChunkMetaData, fixedLength, v, schemaElement);
+
+ // The width of each element of the TimeStampVector is 8 bytes (64 bits) instead of 12 bytes.
+ dataTypeLengthInBits = NullableTimeStampHolder.WIDTH * 8;
}
@Override
@@ -127,8 +130,6 @@ public class NullableFixedByteAlignedReaders {
valueVec.getMutator().setSafe(valuesReadInCurrentPass + i, getDateTimeValueFromBinary(binaryTimeStampValue, true));
}
}
- // The width of each element of the TimeStampVector is 8 bytes (64 bits) instead of 12 bytes.
- dataTypeLengthInBits = NullableTimeStampHolder.WIDTH * 8;
}
}