aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/effects/gradients
diff options
context:
space:
mode:
authorGravatar Hal Canary <halcanary@google.com>2017-02-27 09:59:39 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-02-27 15:39:04 +0000
commitab8e02a4dee79fc4300c5eec0fbbc44d07f433d3 (patch)
treef30cb8b1b73ff87068548d1cf8d1ab2702120edc /src/effects/gradients
parentcb79393e88ecfe2cc21d0f6c3bbea0436b0bacb7 (diff)
SkGradientShader: Fix multi-byte-read-stack-use-after-scope
BUG=chromium:694098 Change-Id: I9dfd61d1eed123fce33acf55f6f68e80ac41da25 Reviewed-on: https://skia-review.googlesource.com/8985 Reviewed-by: Leon Scroggins <scroggo@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
Diffstat (limited to 'src/effects/gradients')
-rw-r--r--src/effects/gradients/SkGradientShader.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/effects/gradients/SkGradientShader.cpp b/src/effects/gradients/SkGradientShader.cpp
index adb94960dc..32189c57ad 100644
--- a/src/effects/gradients/SkGradientShader.cpp
+++ b/src/effects/gradients/SkGradientShader.cpp
@@ -763,9 +763,11 @@ void SkGradientShaderBase::commonAsAGradient(GradientInfo* info, bool flipGrad)
if (info->fColorCount >= fColorCount) {
SkColor* colorLoc;
Rec* recLoc;
+ SkAutoSTArray<8, SkColor> colorStorage;
+ SkAutoSTArray<8, Rec> recStorage;
if (flipGrad && (info->fColors || info->fColorOffsets)) {
- SkAutoSTArray<8, SkColor> colorStorage(fColorCount);
- SkAutoSTArray<8, Rec> recStorage(fColorCount);
+ colorStorage.reset(fColorCount);
+ recStorage.reset(fColorCount);
colorLoc = colorStorage.get();
recLoc = recStorage.get();
FlipGradientColors(colorLoc, recLoc, fOrigColors, fRecs, fColorCount);