From: commit-bot@chromium.org Date: Thu, 13 Feb 2014 18:46:13 +0000 (+0000) Subject: Fixed clusterfuzz found crash X-Git-Tag: accepted/tizen/5.0/unified/20181102.025319~9020 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=33fed14b1d4867015ac518874013e0b3e06ea982;p=platform%2Fupstream%2FlibSkiaSharp.git Fixed clusterfuzz found crash BUG=343461 R=senorblanco@google.com, senorblanco@chromium.org, reed@chromium.org, reed@google.com Author: sugoi@chromium.org Review URL: https://codereview.chromium.org/162943003 git-svn-id: http://skia.googlecode.com/svn/trunk@13439 2bbb7eff-a529-9590-31e7-b0007b416f81 --- diff --git a/src/core/SkBitmap.cpp b/src/core/SkBitmap.cpp index 96d683c..3418fad 100644 --- a/src/core/SkBitmap.cpp +++ b/src/core/SkBitmap.cpp @@ -1566,11 +1566,13 @@ void SkBitmap::unflatten(SkReadBuffer& buffer) { SkImageInfo info; info.unflatten(buffer); size_t rowBytes = buffer.readInt(); - buffer.validate((info.width() >= 0) && (info.height() >= 0) && - SkColorTypeIsValid(info.fColorType) && - SkAlphaTypeIsValid(info.fAlphaType) && - validate_alphaType(info.fColorType, info.fAlphaType) && - info.validRowBytes(rowBytes)); + if (!buffer.validate((info.width() >= 0) && (info.height() >= 0) && + SkColorTypeIsValid(info.fColorType) && + SkAlphaTypeIsValid(info.fAlphaType) && + validate_alphaType(info.fColorType, info.fAlphaType) && + info.validRowBytes(rowBytes))) { + return; + } bool configIsValid = this->setConfig(info, rowBytes); buffer.validate(configIsValid);