From 46a9bb8d71529e4a8c2ca9c68e280ea989d5bece Mon Sep 17 00:00:00 2001 From: "commit-bot@chromium.org" Date: Fri, 22 Nov 2013 16:43:14 +0000 Subject: [PATCH] Fixing issues found by fuzzer BUG=321802,321790 R=reed@google.com, senorblanco@google.com Author: sugoi@chromium.org Review URL: https://codereview.chromium.org/83073005 git-svn-id: http://skia.googlecode.com/svn/trunk@12362 2bbb7eff-a529-9590-31e7-b0007b416f81 --- src/core/SkValidatingReadBuffer.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/core/SkValidatingReadBuffer.cpp b/src/core/SkValidatingReadBuffer.cpp index 1be142d40f..a92c1b9b6f 100644 --- a/src/core/SkValidatingReadBuffer.cpp +++ b/src/core/SkValidatingReadBuffer.cpp @@ -94,14 +94,16 @@ void SkValidatingReadBuffer::readString(SkString* string) { // skip over the string + '\0' and then pad to a multiple of 4 const size_t alignedSize = SkAlign4(len + 1); this->skip(alignedSize); - this->validate(cptr[len] == '\0'); + if (!fError) { + this->validate(cptr[len] == '\0'); + } if (!fError) { string->set(cptr, len); } } void* SkValidatingReadBuffer::readEncodedString(size_t* length, SkPaint::TextEncoding encoding) { - const int32_t encodingType = fReader.readInt(); + const int32_t encodingType = this->readInt(); this->validate(encodingType == encoding); *length = this->readInt(); const void* ptr = this->skip(SkAlign4(*length)); @@ -114,8 +116,8 @@ void* SkValidatingReadBuffer::readEncodedString(size_t* length, SkPaint::TextEnc } void SkValidatingReadBuffer::readPoint(SkPoint* point) { - point->fX = fReader.readScalar(); - point->fY = fReader.readScalar(); + point->fX = this->readScalar(); + point->fY = this->readScalar(); } void SkValidatingReadBuffer::readMatrix(SkMatrix* matrix) {