Added a few more checks to avoid overflowing 32 bit sizes while computing convolutions.
I also changed a dangerously misleading INHERITED typedef.
BUG=389570
R=senorblanco@google.com, senorblanco@chromium.org
Author: sugoi@chromium.org
Review URL: https://codereview.chromium.org/
361403006
}
// Compute where in the output image this row of final data will go.
- unsigned char* curOutputRow = &output[outY * outputByteRowStride];
+ unsigned char* curOutputRow = &output[(uint64_t)outY * outputByteRowStride];
// Get the list of rows that the circular buffer has, in order.
int firstRowInCircularBuffer;
bool SkScaledImageCacheDiscardableAllocator::allocPixelRef(SkBitmap* bitmap,
SkColorTable* ctable) {
size_t size = bitmap->getSize();
- if (0 == size) {
+ uint64_t size64 = bitmap->computeSize64();
+ if (0 == size || size64 > (uint64_t)size) {
return false;
}
private:
GrGLUniformManager::UniformHandle fMatrixHandle;
GrGLUniformManager::UniformHandle fVectorHandle;
+
+ typedef GrGLEffect INHERITED;
};
private:
SkColorMatrix fMatrix;
- typedef GrGLEffect INHERITED;
+ typedef GrEffect INHERITED;
};
GR_DEFINE_EFFECT_TEST(ColorMatrixEffect);