diff --git a/indra/llimage/llimagej2c.cpp b/indra/llimage/llimagej2c.cpp index 2f762dff9..2607d2290 100644 --- a/indra/llimage/llimagej2c.cpp +++ b/indra/llimage/llimagej2c.cpp @@ -478,7 +478,7 @@ BOOL LLImageJ2C::validate(U8 *data, U32 file_size) if ( res ) { // Check to make sure that this instance has been initialized with data - if (!getData() || (0 == getDataSize())) + if (!getData() || (getDataSize() < 16)) { setLastError("LLImageJ2C uninitialized"); res = FALSE; diff --git a/indra/llimage/llimagemetadatareader.cpp b/indra/llimage/llimagemetadatareader.cpp index bf2c64c90..777eed661 100644 --- a/indra/llimage/llimagemetadatareader.cpp +++ b/indra/llimage/llimagemetadatareader.cpp @@ -70,14 +70,19 @@ std::vector LLJ2cParser::GetNextComment() return content; } +/*BOOL LLJ2cParser::validIterator() +{ + return (mIter != mData.end()); +}*/ + //static std::string LLImageMetaDataReader::ExtractEncodedComment(U8* data,int data_size) { - LLJ2cParser* parser = new LLJ2cParser(data,data_size); - while(1) + LLJ2cParser parser = LLJ2cParser(data,data_size); + //while(1) // I dont think we need to loop { - std::vector comment = parser->GetNextComment(); - if (comment.empty()) break; //exit loop + std::vector comment = parser.GetNextComment(); + if (comment.empty()) return ""; //break; //exit loop if (comment[1] == 0x00 && comment.size() == 130) { //llinfos << "FOUND PAYLOAD" << llendl; @@ -109,21 +114,19 @@ std::string LLImageMetaDataReader::ExtractEncodedComment(U8* data,int data_size) } else { - break;//exit loop + return "";//break; //exit loop } for (i = 4; i < 128; ++i) { if (payload[i] == 0) break; } - if(i < 4) break; + if(i < 4) return "";//break; //exit loop std::string result(payload.begin()+4,payload.begin()+i); //llinfos << "FOUND COMMENT: " << result << llendl; - delete parser; return result; } } //end of loop - delete parser; return ""; } //