dwrite: Avoid calling memcpy with NULL source.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52187
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Esme Povirk 2021-12-11 14:04:26 -06:00 committed by Alexandre Julliard
parent 4ef4864672
commit 412b36e45a
1 changed files with 8 additions and 2 deletions

View File

@ -868,7 +868,8 @@ static HRESULT get_text_source_ptr(IDWriteTextAnalysisSource *source, UINT32 pos
*buff = malloc(length * sizeof(WCHAR));
if (!*buff)
return E_OUTOFMEMORY;
memcpy(*buff, *text, len*sizeof(WCHAR));
if (*text)
memcpy(*buff, *text, len*sizeof(WCHAR));
read = len;
while (read < length && *text) {
@ -880,6 +881,8 @@ static HRESULT get_text_source_ptr(IDWriteTextAnalysisSource *source, UINT32 pos
free(*buff);
return hr;
}
if (!*text)
break;
memcpy(*buff + read, *text, min(len, length-read)*sizeof(WCHAR));
read += len;
}
@ -1009,7 +1012,8 @@ static HRESULT WINAPI dwritetextanalyzer_AnalyzeLineBreakpoints(IDWriteTextAnaly
if (!(buff = calloc(length, sizeof(*buff))))
return E_OUTOFMEMORY;
memcpy(buff, text, len*sizeof(WCHAR));
if (text)
memcpy(buff, text, len*sizeof(WCHAR));
read = len;
while (read < length && text) {
@ -1018,6 +1022,8 @@ static HRESULT WINAPI dwritetextanalyzer_AnalyzeLineBreakpoints(IDWriteTextAnaly
hr = IDWriteTextAnalysisSource_GetTextAtPosition(source, read, &text, &len);
if (FAILED(hr))
goto done;
if (!text)
break;
memcpy(&buff[read], text, min(len, length-read)*sizeof(WCHAR));
read += len;
}