diff options
author | robertphillips <robertphillips@google.com> | 2016-06-27 12:26:29 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-06-27 12:26:29 -0700 |
commit | 6a16fd33da4e77ced87a46fa346a6095ceea8899 (patch) | |
tree | f9563ae8f72004c29e581668330cf354750e15f9 /src/effects | |
parent | 5354e4a0c2b629b5336fbd3743944fe059514141 (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')
-rw-r--r-- | src/effects/SkPerlinNoiseShader.cpp | 4 |
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() { |