diff options
author | Oz Linden <oz@lindenlab.com> | 2012-04-06 14:36:58 -0400 |
---|---|---|
committer | Oz Linden <oz@lindenlab.com> | 2012-04-06 14:36:58 -0400 |
commit | 0539de909951e94c9c22aac9ac94835793c7bf49 (patch) | |
tree | 7967dedb3014262501e3c384facfb237c0a99cdd /indra/llimage/llimagepng.cpp | |
parent | 2ed386e07b5c1bb7dd47a403548746e7416acd67 (diff) |
STORM-1837: check for valid png header before attempting to decode
Diffstat (limited to 'indra/llimage/llimagepng.cpp')
-rw-r--r-- | indra/llimage/llimagepng.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/indra/llimage/llimagepng.cpp b/indra/llimage/llimagepng.cpp index 8d493ecde0..294f68b122 100644 --- a/indra/llimage/llimagepng.cpp +++ b/indra/llimage/llimagepng.cpp @@ -60,6 +60,12 @@ BOOL LLImagePNG::updateData() // Decode the PNG data and extract sizing information LLPngWrapper pngWrapper; + if (!pngWrapper.isValidPng(getData())) + { + setLastError("LLImagePNG data does not have a valid PNG header!"); + return FALSE; + } + LLPngWrapper::ImageInfo infop; if (! pngWrapper.readPng(getData(), NULL, &infop)) { @@ -90,6 +96,12 @@ BOOL LLImagePNG::decode(LLImageRaw* raw_image, F32 decode_time) // Decode the PNG data into the raw image LLPngWrapper pngWrapper; + if (!pngWrapper.isValidPng(getData())) + { + setLastError("LLImagePNG data does not have a valid PNG header!"); + return FALSE; + } + if (! pngWrapper.readPng(getData(), raw_image)) { setLastError(pngWrapper.getErrorMessage()); |