diff --git a/Engine/source/ts/tsShapeOldRead.cpp b/Engine/source/ts/tsShapeOldRead.cpp index 9b06aff75..909ee2add 100644 --- a/Engine/source/ts/tsShapeOldRead.cpp +++ b/Engine/source/ts/tsShapeOldRead.cpp @@ -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,11 @@ S32 TSShape::readName(Stream * s, bool addName) names.last() = buffer; } } + else + { + Con::errorf("invalid TSShape::readName length!"); + } + return nameIndex; }