Chromium Code Reviews| Index: src/core/SkBitmap.cpp |
| diff --git a/src/core/SkBitmap.cpp b/src/core/SkBitmap.cpp |
| index 96d683c0e2592765351bcf5e9912085b660093a6..1d9405f4a4c6cfb443e51e7ac3b8c5ebfaa9fd6f 100644 |
| --- a/src/core/SkBitmap.cpp |
| +++ b/src/core/SkBitmap.cpp |
| @@ -1566,11 +1566,14 @@ 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))) { |
| + // Clear info if it's invalid |
| + sk_bzero(&info, sizeof(SkImageInfo)); |
|
reed2
2014/02/13 16:55:48
Why not just
if (invalid) {
return;
}
We've a
sugoi1
2014/02/13 18:05:53
Done.
|
| + } |
| bool configIsValid = this->setConfig(info, rowBytes); |
| buffer.validate(configIsValid); |