From 6a16fd33da4e77ced87a46fa346a6095ceea8899 Mon Sep 17 00:00:00 2001 From: robertphillips Date: Mon, 27 Jun 2016 12:26:29 -0700 Subject: Fix Perlin noise fuzz issue The main "fix" here was that the assert was checking the un-clamped input value rather than the clamped value. The SkValidatingReadBuffer.cpp change was required to get the reproducing fuzz test case to complete. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2107453002 Review-Url: https://codereview.chromium.org/2107453002 --- src/effects/SkPerlinNoiseShader.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/effects/SkPerlinNoiseShader.cpp') diff --git a/src/effects/SkPerlinNoiseShader.cpp b/src/effects/SkPerlinNoiseShader.cpp index 1400905bfe..2268d4e1d5 100644 --- a/src/effects/SkPerlinNoiseShader.cpp +++ b/src/effects/SkPerlinNoiseShader.cpp @@ -275,12 +275,12 @@ SkPerlinNoiseShader::SkPerlinNoiseShader(SkPerlinNoiseShader::Type type, : fType(type) , fBaseFrequencyX(baseFrequencyX) , fBaseFrequencyY(baseFrequencyY) - , fNumOctaves(numOctaves > 255 ? 255 : numOctaves/*[0,255] octaves allowed*/) + , fNumOctaves(SkTPin(numOctaves, 0, 255)) // [0,255] octaves allowed , fSeed(seed) , fTileSize(nullptr == tileSize ? SkISize::Make(0, 0) : *tileSize) , fStitchTiles(!fTileSize.isEmpty()) { - SkASSERT(numOctaves >= 0 && numOctaves < 256); + SkASSERT(fNumOctaves >= 0 && fNumOctaves < 256); } SkPerlinNoiseShader::~SkPerlinNoiseShader() { -- cgit v1.2.3