From ce0054f03090a86f6e4f1efc0eee57659481cce1 Mon Sep 17 00:00:00 2001 From: Shauren Date: Sat, 25 Nov 2017 22:28:30 +0100 Subject: Core/DataStores: Fixed possible out of bounds memory access --- src/common/DataStores/DB2FileLoader.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/common/DataStores/DB2FileLoader.cpp') diff --git a/src/common/DataStores/DB2FileLoader.cpp b/src/common/DataStores/DB2FileLoader.cpp index 6e2b455f48d..ce174be43ca 100644 --- a/src/common/DataStores/DB2FileLoader.cpp +++ b/src/common/DataStores/DB2FileLoader.cpp @@ -1115,7 +1115,8 @@ char const* DB2FileLoaderSparseImpl::RecordGetString(unsigned char const* record uint32 DB2FileLoaderSparseImpl::RecordGetVarInt(unsigned char const* record, uint32 field, uint32 arrayIndex, bool isSigned) const { ASSERT(field < _header->FieldCount); - uint32 val = *reinterpret_cast(record + GetFieldOffset(field, arrayIndex)); + uint32 val = 0; + memcpy(&val, record + GetFieldOffset(field, arrayIndex), GetFieldSize(field)); EndianConvert(val); if (isSigned) return int32(val) << fields[field].UnusedBits >> fields[field].UnusedBits; -- cgit v1.2.3