From c9f0cc8700d57d57daab0aa4de1d5c367df99ceb Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Tue, 15 Nov 2016 16:07:02 -0500 Subject: Add back in min/max check on fuzzer range BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4798 Change-Id: Ia93b4eeea82dd04f0c6bd287f61d26086a0aa740 Reviewed-on: https://skia-review.googlesource.com/4798 Reviewed-by: Kevin Lubick Commit-Queue: Kevin Lubick --- fuzz/Fuzz.h | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) (limited to 'fuzz/Fuzz.h') diff --git a/fuzz/Fuzz.h b/fuzz/Fuzz.h index 559addb7cf..8abbb2276a 100644 --- a/fuzz/Fuzz.h +++ b/fuzz/Fuzz.h @@ -95,20 +95,19 @@ inline void Fuzz::nextRange(float* f, float min, float max) { template inline void Fuzz::nextRange(T* n, Min min, Max max) { this->next(n); - T range = max - min + 1; - if (0 == range) { - return; - } else { - if (*n < 0) { // Handle negatives - if (*n != std::numeric_limits::lowest()) { - *n *= -1; - } - else { - *n = std::numeric_limits::max(); - } - } - *n = min + (*n % range); + if (min >= max) { + // Avoid misuse of nextRange + this->signalBug(); + } + if (*n < 0) { // Handle negatives + if (*n != std::numeric_limits::lowest()) { + *n *= -1; + } + else { + *n = std::numeric_limits::max(); + } } + *n = min + (*n % ((size_t)max - min + 1)); } template -- cgit v1.2.3