aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/effects/SkPerlinNoiseShader.cpp
diff options
context:
space:
mode:
authorGravatar robertphillips <robertphillips@google.com>2016-06-27 12:26:29 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-06-27 12:26:29 -0700
commit6a16fd33da4e77ced87a46fa346a6095ceea8899 (patch)
treef9563ae8f72004c29e581668330cf354750e15f9 /src/effects/SkPerlinNoiseShader.cpp
parent5354e4a0c2b629b5336fbd3743944fe059514141 (diff)
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
Diffstat (limited to 'src/effects/SkPerlinNoiseShader.cpp')
-rw-r--r--src/effects/SkPerlinNoiseShader.cpp4
1 files changed, 2 insertions, 2 deletions
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<int>(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() {