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.
pull/313/head
Andrew Short 2014-07-13 00:34:08 +10:00
parent 9036c6a380
commit a30ea8e92c
1 changed files with 2 additions and 2 deletions

View File

@ -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 unsigned char* sz2 = (const unsigned char*)mBuffer;
const char* const szEnd = sz2+80; 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++ &&