| Index: src/images/SkImageDecoder_libpng.cpp
|
| diff --git a/src/images/SkImageDecoder_libpng.cpp b/src/images/SkImageDecoder_libpng.cpp
|
| index 02ba6af90a34be865e92105c4c29ade78c39bcfc..3cc41e3f5983c81561b00dfb440c81f73ba0a459 100644
|
| --- a/src/images/SkImageDecoder_libpng.cpp
|
| +++ b/src/images/SkImageDecoder_libpng.cpp
|
| @@ -607,13 +607,9 @@ bool SkPNGImageDecoder::getBitmapConfig(png_structp png_ptr, png_infop info_ptr,
|
|
|
| // sanity check for size
|
| {
|
| - Sk64 size;
|
| - size.setMul(origWidth, origHeight);
|
| - if (size.isNeg() || !size.is32()) {
|
| - return false;
|
| - }
|
| + int64_t size = sk_64_mul(origWidth, origHeight);
|
| // now check that if we are 4-bytes per pixel, we also don't overflow
|
| - if (size.get32() > (0x7FFFFFFF >> 2)) {
|
| + if (size < 0 || size > (0x7FFFFFFF >> 2)) {
|
| return false;
|
| }
|
| }
|
|
|