mirror of
https://github.com/bulletphysics/bullet3.git
synced 2026-10-13 04:15:36 +00:00
Merge pull request #3289 from vabr-g/vabr-g-stack-overflow
Fix stack overflow in parsing URDF files in Bullet
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user