|
@@ -65,6 +65,7 @@ using namespace Assimp;
|
|
|
// Constructor to be privately used by Importer
|
|
|
BaseImporter::BaseImporter() AI_NO_EXCEPT
|
|
|
: m_progress() {
|
|
|
+ // empty
|
|
|
}
|
|
|
|
|
|
// ------------------------------------------------------------------------------------------------
|
|
@@ -372,7 +373,10 @@ void BaseImporter::ConvertToUTF8(std::vector<char> &data) {
|
|
|
|
|
|
// UTF 16 BE with BOM
|
|
|
if (*((uint16_t *)&data.front()) == 0xFFFE) {
|
|
|
-
|
|
|
+ // Check to ensure no overflow can happen
|
|
|
+ if(data.size() % 2 != 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
// swap the endianness ..
|
|
|
for (uint16_t *p = (uint16_t *)&data.front(), *end = (uint16_t *)&data.back(); p <= end; ++p) {
|
|
|
ByteSwap::Swap2(p);
|