Browse Source

Fix overflow in STL header colour reading.

When reading the STL header for a "COLOR=rgb" part, the bytes were treated as signed chars, when in fact they can range from 0-255. This meant that any value greater than 127 would overflow, leading to an incorrect colour.

This change fixes the issue by treating the header as unsigned chars.
Andrew Short 11 years ago
parent
commit
a30ea8e92c
1 changed files with 2 additions and 2 deletions
  1. 2 2
      code/STLLoader.cpp

+ 2 - 2
code/STLLoader.cpp

@@ -348,8 +348,8 @@ bool STLImporter::LoadBinaryFile()
 	bool bIsMaterialise = false;
 	bool bIsMaterialise = false;
 
 
 	// search for an occurence of "COLOR=" in the header
 	// search for an occurence of "COLOR=" in the header
-	const char* sz2 = (const char*)mBuffer;
-	const char* const szEnd = sz2+80;
+	const unsigned char* sz2 = (const unsigned char*)mBuffer;
+	const unsigned char* const szEnd = sz2+80;
 	while (sz2 < szEnd)	{
 	while (sz2 < szEnd)	{
 
 
 		if ('C' == *sz2++ && 'O' == *sz2++ && 'L' == *sz2++ &&
 		if ('C' == *sz2++ && 'O' == *sz2++ && 'L' == *sz2++ &&