diff options
Diffstat (limited to 'chromium/content/renderer/renderer_clipboard_client.cc')
-rw-r--r-- | chromium/content/renderer/renderer_clipboard_client.cc | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/chromium/content/renderer/renderer_clipboard_client.cc b/chromium/content/renderer/renderer_clipboard_client.cc index 9c47463bddd..e4f275c92eb 100644 --- a/chromium/content/renderer/renderer_clipboard_client.cc +++ b/chromium/content/renderer/renderer_clipboard_client.cc @@ -7,6 +7,7 @@ #include "content/renderer/renderer_clipboard_client.h" #include "base/memory/shared_memory.h" +#include "base/numerics/safe_math.h" #include "base/strings/string16.h" #include "content/common/clipboard_messages.h" #include "content/public/renderer/content_renderer_client.h" @@ -49,7 +50,13 @@ void RendererClipboardWriteContext::WriteBitmapFromPixels( if (shared_buf_) return; - uint32 buf_size = 4 * size.width() * size.height(); + base::CheckedNumeric<uint32> checked_buf_size = 4; + checked_buf_size *= size.width(); + checked_buf_size *= size.height(); + if (!checked_buf_size.IsValid()) + return; + + uint32 buf_size = checked_buf_size.ValueOrDie(); // Allocate a shared memory buffer to hold the bitmap bits. shared_buf_.reset(ChildThread::current()->AllocateSharedMemory(buf_size)); @@ -107,9 +114,8 @@ uint64 RendererClipboardClient::GetSequenceNumber(ui::ClipboardType type) { return sequence_number; } -bool RendererClipboardClient::IsFormatAvailable( - const ui::Clipboard::FormatType& format, - ui::ClipboardType type) { +bool RendererClipboardClient::IsFormatAvailable(content::ClipboardFormat format, + ui::ClipboardType type) { bool result; RenderThreadImpl::current()->Send( new ClipboardHostMsg_IsFormatAvailable(format, type, &result)); @@ -134,12 +140,6 @@ void RendererClipboardClient::ReadText(ui::ClipboardType type, new ClipboardHostMsg_ReadText(type, result)); } -void RendererClipboardClient::ReadAsciiText(ui::ClipboardType type, - std::string* result) { - RenderThreadImpl::current()->Send( - new ClipboardHostMsg_ReadAsciiText(type, result)); -} - void RendererClipboardClient::ReadHTML(ui::ClipboardType type, base::string16* markup, GURL* url, uint32* fragment_start, @@ -173,12 +173,6 @@ void RendererClipboardClient::ReadCustomData(ui::ClipboardType clipboard_type, new ClipboardHostMsg_ReadCustomData(clipboard_type, type, data)); } -void RendererClipboardClient::ReadData(const ui::Clipboard::FormatType& format, - std::string* data) { - RenderThreadImpl::current()->Send( - new ClipboardHostMsg_ReadData(format, data)); -} - ClipboardClient::WriteContext* RendererClipboardClient::CreateWriteContext() { return new RendererClipboardWriteContext; } |