diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-04-20 17:29:29 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-04-23 08:09:27 +0000 |
commit | 7ae5eb61882cfc26120b4c712cf4ceb807b36cbc (patch) | |
tree | 8a1befd1661b94a974e9008a7339bcc2f19a02b9 | |
parent | 1f64262b5d3052f81f0976b74b06cea7fdba78a0 (diff) |
init out-param on buffer failurev5.11.0-rc1
Bug:804651
Reviewed-on: https://skia-review.googlesource.com/98663
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Change-Id: I9b827d11e5c2d92fa087c879c35f130a9647bcc6
Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
-rw-r--r-- | chromium/third_party/skia/src/core/SkReadBuffer.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/chromium/third_party/skia/src/core/SkReadBuffer.cpp b/chromium/third_party/skia/src/core/SkReadBuffer.cpp index 8da4089a17f..d82ec4a0462 100644 --- a/chromium/third_party/skia/src/core/SkReadBuffer.cpp +++ b/chromium/third_party/skia/src/core/SkReadBuffer.cpp @@ -182,7 +182,9 @@ void SkReadBuffer::readMatrix(SkMatrix* matrix) { size_t size = 0; if (this->isValid()) { size = SkMatrixPriv::ReadFromMemory(matrix, fReader.peek(), fReader.available()); - this->validate((SkAlign4(size) == size) && (0 != size)); + if (!this->validate((SkAlign4(size) == size) && (0 != size))) { + matrix->reset(); + } } (void)this->skip(size); } @@ -209,7 +211,9 @@ void SkReadBuffer::readRegion(SkRegion* region) { size_t size = 0; if (!fError) { size = region->readFromMemory(fReader.peek(), fReader.available()); - this->validate((SkAlign4(size) == size) && (0 != size)); + if (!this->validate((SkAlign4(size) == size) && (0 != size))) { + region->setEmpty(); + } } (void)this->skip(size); } @@ -218,7 +222,9 @@ void SkReadBuffer::readPath(SkPath* path) { size_t size = 0; if (!fError) { size = path->readFromMemory(fReader.peek(), fReader.available()); - this->validate((SkAlign4(size) == size) && (0 != size)); + if (!this->validate((SkAlign4(size) == size) && (0 != size))) { + path->reset(); + } } (void)this->skip(size); } |