[X2Go-Commits] [pale-moon] 79/102: Handle pasted data of certain types with an odd length.

git-admin at x2go.org git-admin at x2go.org
Mon Feb 25 23:25:54 CET 2019


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch upstream/28.4.0
in repository pale-moon.

commit 0b6d9a47051be9ef4d064c6f7c60717da91d0bc2
Author: Alex Gaynor <agaynor at mozilla.com>
Date:   Thu Feb 7 14:08:09 2019 +0100

    Handle pasted data of certain types with an odd length.
---
 widget/windows/nsClipboard.cpp | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/widget/windows/nsClipboard.cpp b/widget/windows/nsClipboard.cpp
index 0db1dd3..432bade 100644
--- a/widget/windows/nsClipboard.cpp
+++ b/widget/windows/nsClipboard.cpp
@@ -283,16 +283,19 @@ nsresult nsClipboard::GetGlobalData(HGLOBAL aHGBL, void ** aData, uint32_t * aLe
 {
   // Allocate a new memory buffer and copy the data from global memory.
   // Recall that win98 allocates to nearest DWORD boundary. As a safety
-  // precaution, allocate an extra 2 bytes (but don't report them!) and
-  // null them out to ensure that all of our strlen calls will succeed.
+  // precaution, allocate an extra 3 bytes (but don't report them in |aLen|!)
+  // and null them out to ensure that all of our NS_strlen calls will succeed.
+  // NS_strlen operates on char16_t, so we need 3 NUL bytes to ensure it finds
+  // a full NUL char16_t when |*aLen| is odd.
   nsresult  result = NS_ERROR_FAILURE;
   if (aHGBL != nullptr) {
     LPSTR lpStr = (LPSTR) GlobalLock(aHGBL);
     DWORD allocSize = GlobalSize(aHGBL);
-    char* data = static_cast<char*>(malloc(allocSize + sizeof(char16_t)));
+    char* data = static_cast<char*>(malloc(allocSize + 3));
     if ( data ) {    
       memcpy ( data, lpStr, allocSize );
-      data[allocSize] = data[allocSize + 1] = '\0';     // null terminate for safety
+      data[allocSize] = data[allocSize + 1] = data[allocSize + 2] =
+          '\0'; // null terminate for safety
 
       GlobalUnlock(aHGBL);
       *aData = data;

--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/pale-moon.git


More information about the x2go-commits mailing list