Ken Thomases : winemac: Fix some bytes-vs-WCHARs length computation bugs in the UTF-16 clipboard support .
Alexandre Julliard
julliard at winehq.org
Mon Oct 21 14:58:24 CDT 2013
Module: wine
Branch: master
Commit: c7f8e71ab6e766003faaf0bde9edee64c1f1b3e4
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c7f8e71ab6e766003faaf0bde9edee64c1f1b3e4
Author: Ken Thomases <ken at codeweavers.com>
Date: Sun Oct 20 23:54:49 2013 -0500
winemac: Fix some bytes-vs-WCHARs length computation bugs in the UTF-16 clipboard support.
---
dlls/winemac.drv/clipboard.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/dlls/winemac.drv/clipboard.c b/dlls/winemac.drv/clipboard.c
index 80fd689..9cfe283 100644
--- a/dlls/winemac.drv/clipboard.c
+++ b/dlls/winemac.drv/clipboard.c
@@ -1007,7 +1007,7 @@ static HANDLE import_utf16_to_unicodetext(CFDataRef data)
HANDLE unicode_handle;
src = (const WCHAR *)CFDataGetBytePtr(data);
- data_len = CFDataGetLength(data);
+ data_len = CFDataGetLength(data) / sizeof(WCHAR);
for (i = 0; i < data_len; i++)
{
if (src[i] == '\n')
@@ -1358,13 +1358,13 @@ static CFDataRef export_unicodetext_to_utf16(HANDLE data)
dst_len = GlobalSize(data) / sizeof(WCHAR);
if (dst_len) dst_len--; /* Leave off null terminator. */
- ret = CFDataCreateMutable(NULL, dst_len);
+ ret = CFDataCreateMutable(NULL, dst_len * sizeof(WCHAR));
if (ret)
{
LPWSTR dst;
int i, j;
- CFDataSetLength(ret, dst_len);
+ CFDataSetLength(ret, dst_len * sizeof(WCHAR));
dst = (LPWSTR)CFDataGetMutableBytePtr(ret);
/* Remove carriage returns */
@@ -1375,7 +1375,7 @@ static CFDataRef export_unicodetext_to_utf16(HANDLE data)
continue;
dst[j++] = src[i];
}
- CFDataSetLength(ret, j);
+ CFDataSetLength(ret, j * sizeof(WCHAR));
}
GlobalUnlock(data);
More information about the wine-cvs
mailing list