diff options
author | 2013-10-23 17:06:21 +0000 | |
---|---|---|
committer | 2013-10-23 17:06:21 +0000 | |
commit | c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cf (patch) | |
tree | 6a0bb372e8e3dfe22909629962e95d9c11ece4a9 /src/effects/SkMergeImageFilter.cpp | |
parent | 759befb72c558202de65a480c44d7b27428ec312 (diff) |
Initial error handling code
I made it as simple as possible. The impact seems minimal and it should do what's necessary to make this code secure.
BUG=
Committed: http://code.google.com/p/skia/source/detail?r=11247
R=reed@google.com, scroggo@google.com, djsollen@google.com, sugoi@google.com, bsalomon@google.com, mtklein@google.com, senorblanco@google.com, senorblanco@chromium.org
Author: sugoi@chromium.org
Review URL: https://codereview.chromium.org/23021015
git-svn-id: http://skia.googlecode.com/svn/trunk@11922 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/effects/SkMergeImageFilter.cpp')
-rwxr-xr-x | src/effects/SkMergeImageFilter.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/effects/SkMergeImageFilter.cpp b/src/effects/SkMergeImageFilter.cpp index 7d12ebe06e..a5c32acaf7 100755 --- a/src/effects/SkMergeImageFilter.cpp +++ b/src/effects/SkMergeImageFilter.cpp @@ -9,6 +9,7 @@ #include "SkCanvas.h" #include "SkDevice.h" #include "SkFlattenableBuffers.h" +#include "SkValidationUtils.h" /////////////////////////////////////////////////////////////////////////////// @@ -159,8 +160,12 @@ SkMergeImageFilter::SkMergeImageFilter(SkFlattenableReadBuffer& buffer) : INHERI bool hasModes = buffer.readBool(); if (hasModes) { this->initAllocModes(); - SkASSERT(buffer.getArrayCount() == countInputs() * sizeof(fModes[0])); + int nbInputs = countInputs(); + SkASSERT(buffer.getArrayCount() == nbInputs * sizeof(fModes[0])); buffer.readByteArray(fModes); + for (int i = 0; i < nbInputs; ++i) { + buffer.validate(SkIsValidMode((SkXfermode::Mode)fModes[i])); + } } else { fModes = 0; } |