[PATCH] riched20: Check for NULL in fnTextSrv_TxSetText and add test
Nikolay Sivov
nsivov at codeweavers.com
Mon Jan 2 14:24:31 CST 2017
On 02.01.2017 23:19, Fabian Maurer wrote:
> Fixes https://bugs.winehq.org/show_bug.cgi?id=12185
>
> Signed-off-by: Fabian Maurer <dark.shadow4 at web.de>
> ---
> 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);
It's important to test if NULL text actually discards existing content
or just does nothing.
> 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();
Maybe it's better to add a check to ME_InsertTextFromCursor?
More information about the wine-devel
mailing list