From 02f251bb4af00d6d145d91f83f77f24d4da253fa Mon Sep 17 00:00:00 2001 From: AnotherTest Date: Mon, 7 Sep 2020 00:36:33 +0430 Subject: [PATCH] LibGUI: Fix OOB read in Clipboard::set_data() --- Libraries/LibGUI/Clipboard.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Libraries/LibGUI/Clipboard.cpp b/Libraries/LibGUI/Clipboard.cpp index f6c88037d0..a711fa2597 100644 --- a/Libraries/LibGUI/Clipboard.cpp +++ b/Libraries/LibGUI/Clipboard.cpp @@ -98,15 +98,13 @@ Clipboard::DataAndType Clipboard::data_and_type() const void Clipboard::set_data(ReadonlyBytes data, const String& type, const HashMap& metadata) { - auto shared_buffer = SharedBuffer::create_with_size(data.size() + 1); + auto shared_buffer = SharedBuffer::create_with_size(data.size()); if (!shared_buffer) { dbgprintf("GUI::Clipboard::set_data() failed to create a shared buffer\n"); return; } if (!data.is_empty()) - memcpy(shared_buffer->data(), data.data(), data.size() + 1); - else - ((u8*)shared_buffer->data())[0] = '\0'; + memcpy(shared_buffer->data(), data.data(), data.size()); shared_buffer->seal(); shared_buffer->share_with(connection().server_pid());