[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