Merge pull request #454 from zfbx/Fix365

Added fix for #365 from PR #367 - buffer overrun bug
This commit is contained in:
Brian Roberts 2021-01-21 18:04:14 -06:00 committed by GitHub
commit 37a319bf35
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -856,12 +856,12 @@ void TSShape::writeName(Stream * s, S32 nameIndex)
S32 TSShape::readName(Stream * s, bool addName) S32 TSShape::readName(Stream * s, bool addName)
{ {
static char buffer[256]; static char buffer[256];
S32 sz; U32 sz;
S32 nameIndex = -1; S32 nameIndex = -1;
s->read(&sz); s->read(&sz);
if (sz) if (sz>0 && sz<255)
{ {
s->read(sz*sizeof(char),buffer); s->read(sz,buffer);
buffer[sz] = '\0'; buffer[sz] = '\0';
nameIndex = findName(buffer); nameIndex = findName(buffer);
@ -881,6 +881,11 @@ S32 TSShape::readName(Stream * s, bool addName)
names.last() = buffer; names.last() = buffer;
} }
} }
else
{
Con::errorf("invalid TSShape::readName length!");
}
return nameIndex; return nameIndex;
} }