Detect an invalid intervalCount in SkRegion during deserialiation. [Cherry-pick from 675576f023c8fa10cdb0c18bc0a6c214e0bab069 to M51 branch.] TBR=robertphillips@google.com BUG=609260 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1961463003 Original Review-Url: https://codereview.chromium.org/1961463003 NOTREECHECKS=true NOTRY=true NOPRESUBMIT=true Review-Url: https://codereview.chromium.org/2027643002
diff --git a/src/core/SkRegion.cpp b/src/core/SkRegion.cpp index 38d12d2..a50425a 100644 --- a/src/core/SkRegion.cpp +++ b/src/core/SkRegion.cpp
@@ -1136,7 +1136,8 @@ tmp.fRunHead = SkRegion_gRectRunHeadPtr; } else { int32_t ySpanCount, intervalCount; - if (buffer.readS32(&ySpanCount) && buffer.readS32(&intervalCount)) { + if (buffer.readS32(&ySpanCount) && buffer.readS32(&intervalCount) && + intervalCount > 1) { tmp.allocateRuns(count, ySpanCount, intervalCount); buffer.read(tmp.fRunHead->writable_runs(), count * sizeof(RunType)); }