Index: src/effects/SkMergeImageFilter.cpp |
diff --git a/src/effects/SkMergeImageFilter.cpp b/src/effects/SkMergeImageFilter.cpp |
index 0c47c91aff21d73e4da6738682da3d2f7d044657..ff537adeba1127d22f2839c00fd92846f3a46ea6 100755 |
--- a/src/effects/SkMergeImageFilter.cpp |
+++ b/src/effects/SkMergeImageFilter.cpp |
@@ -157,8 +157,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.validateData(SkXfermode::IsValidMode((SkXfermode::Mode)fModes[i])); |
+ } |
} else { |
fModes = 0; |
} |