Added fix for #365 from PR #367 - buffer overrun

This commit is contained in:
Tony 2021-01-21 18:38:00 -05:00
parent be3b5ec3aa
commit e3ea4c549c

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;
} }