aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-05-30 17:32:50 +0000
committerGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-05-30 17:32:50 +0000
commitb3281585bb6ee3ad8385bf4ba46513af609fa11b (patch)
tree1c7a5366331e02ee63da581cd1c47f8f7f21ce44
parenta65e2fdc9af4b0b0415888a560d6ebd779bc3148 (diff)
Fixing clusterfuzz issue
When reading an SkSSE2ProcCoeffXfermode object, fProcSIMD should never be NULL. The reason for this is that it's not possible to create such an object through SkPlatformXfermodeFactory_impl_SSE2(), which is the only function used to create these objects, so if we're reading one, it's clearly invalid. BUG=379181 R=reed@google.com, mtklein@google.com Author: sugoi@chromium.org Review URL: https://codereview.chromium.org/306183002 git-svn-id: http://skia.googlecode.com/svn/trunk@15000 2bbb7eff-a529-9590-31e7-b0007b416f81
-rw-r--r--src/opts/SkXfermode_opts_SSE2.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/opts/SkXfermode_opts_SSE2.cpp b/src/opts/SkXfermode_opts_SSE2.cpp
index ec76ab3cfb..94f9a4aea3 100644
--- a/src/opts/SkXfermode_opts_SSE2.cpp
+++ b/src/opts/SkXfermode_opts_SSE2.cpp
@@ -644,6 +644,7 @@ extern SkXfermodeProcSIMD gSSE2XfermodeProcs[];
SkSSE2ProcCoeffXfermode::SkSSE2ProcCoeffXfermode(SkReadBuffer& buffer)
: INHERITED(buffer) {
fProcSIMD = reinterpret_cast<void*>(gSSE2XfermodeProcs[this->getMode()]);
+ buffer.validate(fProcSIMD != NULL);
}
void SkSSE2ProcCoeffXfermode::xfer32(SkPMColor dst[], const SkPMColor src[],