From: Fabian Maurer Subject: [PATCH] riched20: Check for NULL in fnTextSrv_TxSetText and add test Message-Id: <20170102201906.1017-1-dark.shadow4@web.de> Date: Mon, 2 Jan 2017 21:19:06 +0100 Fixes https://bugs.winehq.org/show_bug.cgi?id=12185 Signed-off-by: Fabian Maurer --- dlls/riched20/tests/txtsrv.c | 3 +++ dlls/riched20/txtsrv.c | 7 +++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/dlls/riched20/tests/txtsrv.c b/dlls/riched20/tests/txtsrv.c index 1a6ca61052..6fd77d1b59 100644 --- a/dlls/riched20/tests/txtsrv.c +++ b/dlls/riched20/tests/txtsrv.c @@ -681,6 +681,9 @@ static void test_TxSetText(void) ok(memcmp(rettext,settext,SysStringByteLen(rettext)) == 0, "String returned differs\n"); + /* Test if we crash when using NULL as text */ + ITextServices_TxSetText(txtserv, NULL); + SysFreeString(rettext); ITextServices_Release(txtserv); ITextHost_Release(host); diff --git a/dlls/riched20/txtsrv.c b/dlls/riched20/txtsrv.c index 3df779834b..307b484352 100644 --- a/dlls/riched20/txtsrv.c +++ b/dlls/riched20/txtsrv.c @@ -286,10 +286,9 @@ DECLSPEC_HIDDEN HRESULT WINAPI fnTextSrv_TxSetText(ITextServices *iface, LPCWSTR ME_Cursor cursor; ME_SetCursorToStart(This->editor, &cursor); - ME_InternalDeleteText(This->editor, &cursor, - ME_GetTextLength(This->editor), FALSE); - ME_InsertTextFromCursor(This->editor, 0, pszText, -1, - This->editor->pBuffer->pDefaultStyle); + ME_InternalDeleteText(This->editor, &cursor, ME_GetTextLength(This->editor), FALSE); + if(pszText) + ME_InsertTextFromCursor(This->editor, 0, pszText, -1, This->editor->pBuffer->pDefaultStyle); ME_SetSelection(This->editor, 0, 0); This->editor->nModifyStep = 0; OleFlushClipboard(); -- 2.11.0