diff options
author | herb <herb@google.com> | 2016-01-22 08:34:35 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-01-22 08:34:35 -0800 |
commit | 5e0883cf57176134155fb70c9bc51dbb0f0c67fb (patch) | |
tree | 4348dd9a8a5d9e56b0b6ed848f3d86eae85c4a4e /fuzz | |
parent | 5286f0222ccb65ce1dbe235adc225b79057dd0ae (diff) |
Fix bounds of checking if a radii are too long for a side.
BUG=skia:4692,skia:4413
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1617763003
Review URL: https://codereview.chromium.org/1617763003
Diffstat (limited to 'fuzz')
-rw-r--r-- | fuzz/FuzzScaleToSides.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/fuzz/FuzzScaleToSides.cpp b/fuzz/FuzzScaleToSides.cpp index 88a2b920b0..de98562225 100644 --- a/fuzz/FuzzScaleToSides.cpp +++ b/fuzz/FuzzScaleToSides.cpp @@ -19,23 +19,22 @@ DEF_FUZZ(ScaleToSides, fuzz) { float radius1 = fuzz->nextF(), radius2 = fuzz->nextF(), width = fuzz->nextF(); - SkDebugf("%g %g %g\n", radius1, radius2, width); if (!std::isfinite(radius1) || !std::isfinite(radius2) || - !std::isfinite(width)) + !std::isfinite(width) || + radius1 <= 0.0f || + radius2 <= 0.0f || + width <= 0.0f) { fuzz->signalBoring(); } - if (width <= 0.0f) { - fuzz->signalBoring(); - } - double scale = (double)width / ((double)radius1 + (double)radius2); - if (scale >= 1.0) { + if (scale >= 1.0 || scale <= 0.0) { fuzz->signalBoring(); } + SkDebugf("%g %g %g %g\n", radius1, radius2, width, scale); ScaleToSides::AdjustRadii(width, scale, &radius1, &radius2); // TODO(mtklein): add fuzz->keepResult() |