From: raftias Date: Mon, 28 Nov 2016 16:30:18 +0000 (-0500) Subject: Fuzzer fix for overflow in some Lut8 profiles. X-Git-Tag: accepted/tizen/5.0/unified/20181102.025319~55^2~1504 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=264431d9e2c4021baa2a5357b0c8c7773384d614;p=platform%2Fupstream%2FlibSkiaSharp.git Fuzzer fix for overflow in some Lut8 profiles. Bug(?) in the tetrahedral interpolation causes output values to go out of range a bit (1.035/1.0) in the upper range. We will just clamp for now as a temporary fix. BUG=668784 Change-Id: I78dd90da7174133e647b1c6c6e914dbde5de123c Reviewed-on: https://skia-review.googlesource.com/5228 Reviewed-by: Matt Sarett Commit-Queue: Robert Aftias --- diff --git a/src/core/SkColorLookUpTable.cpp b/src/core/SkColorLookUpTable.cpp index 73f3e88..76e0bca 100644 --- a/src/core/SkColorLookUpTable.cpp +++ b/src/core/SkColorLookUpTable.cpp @@ -92,6 +92,13 @@ void SkColorLookUpTable::interp3D(float dst[3], float src[3]) const { } } + // TODO(raftias): Figure out why this is going out of range (up to 1.0359!) + if (dst[i] > 1.f) { + dst[i] = 1.f; + } else if (dst[i] < 0.f) { + dst[i] = 0.f; + } + // Increment the table ptr in order to handle the next component. // Note that this is the how table is designed: all of nXXX // variables are multiples of 3 because there are 3 output