diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/platform/graphics/image_data_buffer.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/platform/graphics/image_data_buffer.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/chromium/third_party/blink/renderer/platform/graphics/image_data_buffer.cc b/chromium/third_party/blink/renderer/platform/graphics/image_data_buffer.cc index 8e1255ce43b..fe622fba3ae 100644 --- a/chromium/third_party/blink/renderer/platform/graphics/image_data_buffer.cc +++ b/chromium/third_party/blink/renderer/platform/graphics/image_data_buffer.cc @@ -34,6 +34,7 @@ #include <memory> +#include "base/compiler_specific.h" #include "base/memory/ptr_util.h" #include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h" #include "third_party/blink/renderer/platform/image-encoders/image_encoder.h" @@ -78,10 +79,12 @@ ImageDataBuffer::ImageDataBuffer(scoped_refptr<StaticBitmapImage> image) { pixmap_.reset(); return; } + MSAN_CHECK_MEM_IS_INITIALIZED(pixmap_.addr(), pixmap_.computeByteSize()); retained_image_ = SkImage::MakeRasterData(info, std::move(data), rowBytes); } else { if (!retained_image_->peekPixels(&pixmap_)) return; + MSAN_CHECK_MEM_IS_INITIALIZED(pixmap_.addr(), pixmap_.computeByteSize()); } is_valid_ = true; size_ = IntSize(image->width(), image->height()); @@ -161,7 +164,9 @@ String ImageDataBuffer::ToDataURL(const ImageEncodingMimeType mime_type, if (!pixmap.colorSpace()->isSRGB()) { skia_image = SkImage::MakeFromRaster(pixmap, nullptr, nullptr); skia_image = skia_image->makeColorSpace(SkColorSpace::MakeSRGB()); - skia_image->peekPixels(&pixmap); + if (!skia_image->peekPixels(&pixmap)) + return "data:,"; + MSAN_CHECK_MEM_IS_INITIALIZED(pixmap.addr(), pixmap.computeByteSize()); } pixmap.setColorSpace(nullptr); } |