Commit be56285a authored by Mike Reed's avatar Mike Reed Committed by Commit Bot

Careful not to read/write past (conservative) allocation size of SkBitmap

related to https://skia-review.googlesource.com/c/skia/+/50980

Bug: 
Change-Id: I670b4f239cdbedd64892d6de5dd24232ba1ae8ac
Reviewed-on: https://chromium-review.googlesource.com/685719
Commit-Queue: Mike Reed <reed@chromium.org>
Reviewed-by: default avatardanakj <danakj@chromium.org>
Reviewed-by: default avatarFlorin Malita <fmalita@chromium.org>
Cr-Commit-Position: refs/heads/master@{#505139}
parent d76254ab
......@@ -769,7 +769,6 @@ TEST(PNGCodec, EncodeBGRASkBitmapStridePadded) {
const int kHeight = 20;
const int kPaddedWidth = 32;
const int kBytesPerPixel = 4;
const int kPaddedSize = kPaddedWidth * kHeight;
const int kRowBytes = kPaddedWidth * kBytesPerPixel;
SkImageInfo info = SkImageInfo::MakeN32Premul(kWidth, kHeight);
......@@ -781,7 +780,9 @@ TEST(PNGCodec, EncodeBGRASkBitmapStridePadded) {
// We write on the pad area here too.
// The encoder should ignore the pad area.
uint32_t* src_data = original_bitmap.getAddr32(0, 0);
for (int i = 0; i < kPaddedSize; i++) {
const int count =
original_bitmap.getSafeSize() / original_bitmap.bytesPerPixel();
for (int i = 0; i < count; i++) {
src_data[i] = SkPreMultiplyARGB(i % 255, i % 250, i % 245, i % 240);
}
......
......@@ -98,12 +98,12 @@ bool BitmapsAreEqual(const SkBitmap& bitmap1, const SkBitmap& bitmap2) {
size_t size2 = 0;
addr1 = bitmap1.getAddr32(0, 0);
size1 = bitmap1.getSize();
size1 = bitmap1.getSafeSize();
addr2 = bitmap2.getAddr32(0, 0);
size2 = bitmap2.getSize();
size2 = bitmap2.getSafeSize();
return (size1 == size2) && (0 == memcmp(addr1, addr2, bitmap1.getSize()));
return (size1 == size2) && (0 == memcmp(addr1, addr2, size1));
}
void ConvertSkiaToRGBA(const unsigned char* skia,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment