diff --git a/dlls/winemac.drv/clipboard.c b/dlls/winemac.drv/clipboard.c index 80fd6894cfa..9cfe2832ee9 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);