Index: src/images/SkImageDecoder_libico.cpp |
diff --git a/src/images/SkImageDecoder_libico.cpp b/src/images/SkImageDecoder_libico.cpp |
index d415d2be6ddb93de0bb60db60262f4cdd5bd13d7..90058d679af3ae2450d827a2bc8e212ab5183b4c 100644 |
--- a/src/images/SkImageDecoder_libico.cpp |
+++ b/src/images/SkImageDecoder_libico.cpp |
@@ -152,10 +152,11 @@ bool SkICOImageDecoder::onDecode(SkStream* stream, SkBitmap* bm, Mode mode) |
//int reservedToo = readByte(buf, 9 + choice*16); //0 |
//int planes = read2Bytes(buf, 10 + choice*16); //1 - but often 0 |
//int fakeBitCount = read2Bytes(buf, 12 + choice*16); //should be real - usually 0 |
- int size = read4Bytes(buf, 14 + choice*16); //matters? |
- int offset = read4Bytes(buf, 18 + choice*16); |
- if ((size_t)(offset + size) > length) |
+ const size_t size = read4Bytes(buf, 14 + choice*16); //matters? |
+ const size_t offset = read4Bytes(buf, 18 + choice*16); |
+ if ((offset + size) > length) { |
return false; |
+ } |
// Check to see if this is a PNG image inside the ICO |
{ |