Fabian Maurer : riched20: Check for NULL in fnTextSrv_TxSetText and add test.

Alexandre Julliard julliard at winehq.org
Mon Jan 9 15:22:30 CST 2017


Module: wine
Branch: master
Commit: 9f37f6afb4d9bd5019ef4c07a93f163551c1057e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=9f37f6afb4d9bd5019ef4c07a93f163551c1057e

Author: Fabian Maurer <dark.shadow4 at web.de>
Date:   Mon Jan  9 18:08:11 2017 +0100

riched20: Check for NULL in fnTextSrv_TxSetText and add test.

Signed-off-by: Fabian Maurer <dark.shadow4 at web.de>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/riched20/tests/txtsrv.c | 10 ++++++++++
 dlls/riched20/txtsrv.c       |  7 +++----
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/dlls/riched20/tests/txtsrv.c b/dlls/riched20/tests/txtsrv.c
index 1a6ca61..4be3106 100644
--- a/dlls/riched20/tests/txtsrv.c
+++ b/dlls/riched20/tests/txtsrv.c
@@ -681,6 +681,16 @@ static void test_TxSetText(void)
     ok(memcmp(rettext,settext,SysStringByteLen(rettext)) == 0,
                  "String returned differs\n");
 
+    /* Null-pointer should behave the same as empty-string */
+
+    hres = ITextServices_TxSetText(txtserv, 0);
+    ok(hres == S_OK, "ITextServices_TxSetText failed (result = %x)\n", hres);
+
+    hres = ITextServices_TxGetText(txtserv, &rettext);
+    ok(hres == S_OK, "ITextServices_TxGetText failed (result = %x)\n", hres);
+    ok(SysStringLen(rettext) == 0,
+                 "String returned of wrong length (expected 0, got %d)\n", SysStringLen(rettext));
+
     SysFreeString(rettext);
     ITextServices_Release(txtserv);
     ITextHost_Release(host);
diff --git a/dlls/riched20/txtsrv.c b/dlls/riched20/txtsrv.c
index 3df7798..307b484 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();




More information about the wine-cvs mailing list