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
This commit is contained in:
commit-bot@chromium.org 2014-02-13 18:46:13 +00:00
parent be233d63ca
commit 33fed14b1d

View File

@ -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);