diff options
author | 2014-05-30 17:32:50 +0000 | |
---|---|---|
committer | 2014-05-30 17:32:50 +0000 | |
commit | b3281585bb6ee3ad8385bf4ba46513af609fa11b (patch) | |
tree | 1c7a5366331e02ee63da581cd1c47f8f7f21ce44 | |
parent | a65e2fdc9af4b0b0415888a560d6ebd779bc3148 (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.cpp | 1 |
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[], |