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