diff options
author | Mike Reed <reed@google.com> | 2018-04-17 14:50:33 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-04-17 19:30:24 +0000 |
commit | 21a0380655b03a2593ccf658b38ef0ec6336367c (patch) | |
tree | 11746926aaa4afc8cf9c6d914429600bc855a65f /src/core/SkBitmapDevice.cpp | |
parent | 8ff86a6f38ceff715d5f11dcffc3fb7b1c97eb62 (diff) |
detect if we made an infinite rect
Bug: oss-fuzz:7747
Change-Id: I43897e90bb3f0929afa72c40336f771f3a878ecb
Reviewed-on: https://skia-review.googlesource.com/121887
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'src/core/SkBitmapDevice.cpp')
-rw-r--r-- | src/core/SkBitmapDevice.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/core/SkBitmapDevice.cpp b/src/core/SkBitmapDevice.cpp index 7c0e0ab540..4b7b3db37b 100644 --- a/src/core/SkBitmapDevice.cpp +++ b/src/core/SkBitmapDevice.cpp @@ -428,6 +428,9 @@ static inline bool CanApplyDstMatrixAsCTM(const SkMatrix& m, const SkPaint& pain void SkBitmapDevice::drawBitmapRect(const SkBitmap& bitmap, const SkRect* src, const SkRect& dst, const SkPaint& paint, SkCanvas::SrcRectConstraint constraint) { + SkASSERT(dst.isFinite()); + SkASSERT(dst.isSorted()); + SkMatrix matrix; SkRect bitmapBounds, tmpSrc, tmpDst; SkBitmap tmpBitmap; @@ -456,6 +459,9 @@ void SkBitmapDevice::drawBitmapRect(const SkBitmap& bitmap, } // recompute dst, based on the smaller tmpSrc matrix.mapRect(&tmpDst, tmpSrc); + if (!tmpDst.isFinite()) { + return; + } dstPtr = &tmpDst; } } |