aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Mike Reed <reed@google.com>2018-04-23 11:46:06 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-04-23 16:15:41 +0000
commit37bbe7d585fffe3516137513bf859310d532fe50 (patch)
treef556fea90b3063587468b7168f291226f7d8dd22 /src
parenteb17254754255753ba37518190a93677290f84bf (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.cpp3
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);