diff --git a/Extras/Serialize/BulletFileLoader/bFile.cpp b/Extras/Serialize/BulletFileLoader/bFile.cpp index da9f65f20..5c8f54fe3 100644 --- a/Extras/Serialize/BulletFileLoader/bFile.cpp +++ b/Extras/Serialize/BulletFileLoader/bFile.cpp @@ -643,8 +643,8 @@ char *bFile::readStruct(char *head, bChunkInd &dataChunk) if ((strcmp(oldType, "btShortIntIndexData") == 0)) { int allocLen = 2; - char *dataAlloc = new char[(dataChunk.nr * allocLen) + 1]; - memset(dataAlloc, 0, (dataChunk.nr * allocLen) + 1); + char *dataAlloc = new char[(dataChunk.nr * allocLen) + sizeof(void*)]; + memset(dataAlloc, 0, (dataChunk.nr * allocLen) + sizeof(void*)); short *dest = (short *)dataAlloc; const short *src = (short *)head; for (int i = 0; i < dataChunk.nr; i++) @@ -682,8 +682,8 @@ char *bFile::readStruct(char *head, bChunkInd &dataChunk) // numBlocks * length int allocLen = (curLen); - char *dataAlloc = new char[(dataChunk.nr * allocLen) + 1]; - memset(dataAlloc, 0, (dataChunk.nr * allocLen)); + char *dataAlloc = new char[(dataChunk.nr * allocLen) + sizeof(void*)]; + memset(dataAlloc, 0, (dataChunk.nr * allocLen) + sizeof(void*)); // track allocated addDataBlock(dataAlloc); @@ -719,8 +719,8 @@ char *bFile::readStruct(char *head, bChunkInd &dataChunk) #endif // } - char *dataAlloc = new char[(dataChunk.len) + 1]; - memset(dataAlloc, 0, dataChunk.len + 1); + char *dataAlloc = new char[(dataChunk.len) + sizeof(void*)]; + memset(dataAlloc, 0, dataChunk.len + sizeof(void*)); // track allocated addDataBlock(dataAlloc);