Przeglądaj źródła

Merge branch 'master' of github.com:assimp/assimp

acgessler 12 lat temu
rodzic
commit
e8a23ccec9
1 zmienionych plików z 11 dodań i 2 usunięć
  1. 11 2
      code/STLLoader.cpp

+ 11 - 2
code/STLLoader.cpp

@@ -86,7 +86,12 @@ bool IsAsciiSTL(const char* buffer, unsigned int fileSize) {
 	if (IsBinarySTL(buffer, fileSize))
 	if (IsBinarySTL(buffer, fileSize))
 		return false;
 		return false;
 
 
-	if (fileSize < 5)
+	const char* bufferEnd = buffer + fileSize;
+
+	if (!SkipSpaces(&buffer))
+		return false;
+
+	if (buffer + 5 >= bufferEnd)
 		return false;
 		return false;
 
 
 	return strncmp(buffer, "solid", 5) == 0;
 	return strncmp(buffer, "solid", 5) == 0;
@@ -209,7 +214,11 @@ void STLImporter::LoadASCIIFile()
 {
 {
 	aiMesh* pMesh = pScene->mMeshes[0];
 	aiMesh* pMesh = pScene->mMeshes[0];
 
 
-	const char* sz = mBuffer + 5; // skip the "solid"
+	const char* sz = mBuffer;
+	SkipSpaces(&sz);
+	ai_assert(!IsLineEnd(sz));
+
+	sz += 5; // skip the "solid"
 	SkipSpaces(&sz);
 	SkipSpaces(&sz);
 	const char* szMe = sz;
 	const char* szMe = sz;
 	while (!::IsSpaceOrNewLine(*sz)) {
 	while (!::IsSpaceOrNewLine(*sz)) {