Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(136)

Side by Side Diff: src/effects/SkTableColorFilter.cpp

Issue 116773002: Fixed more fuzzer issues (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Changed isAvailable for validateAvailable Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 1
2 #include "SkBitmap.h" 2 #include "SkBitmap.h"
3 #include "SkTableColorFilter.h" 3 #include "SkTableColorFilter.h"
4 #include "SkColorPriv.h" 4 #include "SkColorPriv.h"
5 #include "SkFlattenableBuffers.h" 5 #include "SkFlattenableBuffers.h"
6 #include "SkUnPreMultiply.h" 6 #include "SkUnPreMultiply.h"
7 #include "SkString.h" 7 #include "SkString.h"
8 8
9 class SkTable_ColorFilter : public SkColorFilter { 9 class SkTable_ColorFilter : public SkColorFilter {
10 public: 10 public:
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 182
183 SkTable_ColorFilter::SkTable_ColorFilter(SkFlattenableReadBuffer& buffer) : INHE RITED(buffer) { 183 SkTable_ColorFilter::SkTable_ColorFilter(SkFlattenableReadBuffer& buffer) : INHE RITED(buffer) {
184 fBitmap = NULL; 184 fBitmap = NULL;
185 185
186 uint8_t storage[5*256]; 186 uint8_t storage[5*256];
187 187
188 fFlags = buffer.readInt(); 188 fFlags = buffer.readInt();
189 189
190 size_t size = buffer.getArrayCount(); 190 size_t size = buffer.getArrayCount();
191 SkASSERT(size <= sizeof(storage)); 191 SkASSERT(size <= sizeof(storage));
192 buffer.validate(size <= sizeof(storage));
192 buffer.readByteArray(storage, size); 193 buffer.readByteArray(storage, size);
193 194
194 SkDEBUGCODE(size_t raw = ) SkPackBits::Unpack8(storage, size, fStorage); 195 SkDEBUGCODE(size_t raw = ) SkPackBits::Unpack8(storage, size, fStorage);
195 196
196 SkASSERT(raw <= sizeof(fStorage)); 197 SkASSERT(raw <= sizeof(fStorage));
197 SkDEBUGCODE(size_t count = gCountNibBits[fFlags & 0xF]); 198 SkDEBUGCODE(size_t count = gCountNibBits[fFlags & 0xF]);
198 SkASSERT(raw == count * 256); 199 SkASSERT(raw == count * 256);
199 } 200 }
200 201
201 bool SkTable_ColorFilter::asComponentTable(SkBitmap* table) const { 202 bool SkTable_ColorFilter::asComponentTable(SkBitmap* table) const {
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 SkColorFilter* SkTableColorFilter::CreateARGB(const uint8_t tableA[256], 425 SkColorFilter* SkTableColorFilter::CreateARGB(const uint8_t tableA[256],
425 const uint8_t tableR[256], 426 const uint8_t tableR[256],
426 const uint8_t tableG[256], 427 const uint8_t tableG[256],
427 const uint8_t tableB[256]) { 428 const uint8_t tableB[256]) {
428 return SkNEW_ARGS(SkTable_ColorFilter, (tableA, tableR, tableG, tableB)); 429 return SkNEW_ARGS(SkTable_ColorFilter, (tableA, tableR, tableG, tableB));
429 } 430 }
430 431
431 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkTableColorFilter) 432 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkTableColorFilter)
432 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkTable_ColorFilter) 433 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkTable_ColorFilter)
433 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END 434 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698