diff options
author | 2018-04-23 11:46:06 -0400 | |
---|---|---|
committer | 2018-04-23 16:15:41 +0000 | |
commit | 37bbe7d585fffe3516137513bf859310d532fe50 (patch) | |
tree | f556fea90b3063587468b7168f291226f7d8dd22 /src | |
parent | eb17254754255753ba37518190a93677290f84bf (diff) |
Rewrite CHECK_INTERSECT to perform the !(opposite) predicate, so that we
return false if either argument is NaN.
Bug: oss-fuzz:7914
Change-Id: If4f5eae736bb93451d2ff1c802e7c84a62a38cbc
Reviewed-on: https://skia-review.googlesource.com/122957
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/core/SkRect.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/core/SkRect.cpp b/src/core/SkRect.cpp index 900b872896..10002898e5 100644 --- a/src/core/SkRect.cpp +++ b/src/core/SkRect.cpp @@ -100,7 +100,8 @@ bool SkRect::setBoundsCheck(const SkPoint pts[], int count) { SkScalar R = SkMinScalar(ar, br); \ SkScalar T = SkMaxScalar(at, bt); \ SkScalar B = SkMinScalar(ab, bb); \ - do { if (L >= R || T >= B) return false; } while (0) + do { if (!(L < R && T < B)) return false; } while (0) + // do the !(opposite) check so we return false if either arg is NaN bool SkRect::intersect(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom) { CHECK_INTERSECT(left, top, right, bottom, fLeft, fTop, fRight, fBottom); |