Nikolay Sivov : ole32/pointermoniker: Fix argument check in GetDisplayName().

Alexandre Julliard julliard at winehq.org
Wed Sep 29 15:54:09 CDT 2021


Module: wine
Branch: master
Commit: 01feab9ef4397ce236249dbe7c0edfef4320d826
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=01feab9ef4397ce236249dbe7c0edfef4320d826

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Wed Sep 29 10:23:23 2021 +0300

ole32/pointermoniker: Fix argument check in GetDisplayName().

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ole32/pointermoniker.c | 18 ++++++++----------
 dlls/ole32/tests/moniker.c  |  6 +++++-
 2 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/dlls/ole32/pointermoniker.c b/dlls/ole32/pointermoniker.c
index aa4a01d9e75..051d42aca6d 100644
--- a/dlls/ole32/pointermoniker.c
+++ b/dlls/ole32/pointermoniker.c
@@ -380,19 +380,17 @@ static HRESULT WINAPI PointerMonikerImpl_RelativePathTo(IMoniker *iface, IMonike
     return other ? E_NOTIMPL : E_INVALIDARG;
 }
 
-/******************************************************************************
- *        PointerMoniker_GetDisplayName
- ******************************************************************************/
-static HRESULT WINAPI
-PointerMonikerImpl_GetDisplayName(IMoniker* iface, IBindCtx* pbc,
-                               IMoniker* pmkToLeft, LPOLESTR *ppszDisplayName)
+static HRESULT WINAPI PointerMonikerImpl_GetDisplayName(IMoniker *iface, IBindCtx *pbc,
+        IMoniker *toleft, LPOLESTR *name)
 {
-    TRACE("(%p,%p,%p,%p)\n",iface,pbc,pmkToLeft,ppszDisplayName);
+    TRACE("%p, %p, %p, %p.\n", iface, pbc, toleft, name);
 
-    if (ppszDisplayName==NULL)
-        return E_POINTER;
+    if (!name || !pbc)
+    {
+        if (name) *name = NULL;
+        return E_INVALIDARG;
+    }
 
-    *ppszDisplayName = NULL;
     return E_NOTIMPL;
 }
 
diff --git a/dlls/ole32/tests/moniker.c b/dlls/ole32/tests/moniker.c
index fcd8dd8310d..a7c0714a5d7 100644
--- a/dlls/ole32/tests/moniker.c
+++ b/dlls/ole32/tests/moniker.c
@@ -3689,9 +3689,13 @@ todo_wine
     hr = IMoniker_GetDisplayName(moniker, bindctx, NULL, &display_name);
     ok(hr == E_NOTIMPL, "Unexpected hr %#x.\n", hr);
 
+    hr = IMoniker_GetDisplayName(moniker, bindctx, NULL, NULL);
+    ok(hr == E_INVALIDARG, "Unexpected hr %#x.\n", hr);
+
+    display_name = (void *)0xdeadbeef;
     hr = IMoniker_GetDisplayName(moniker, NULL, NULL, &display_name);
-todo_wine
     ok(hr == E_INVALIDARG, "Unexpected hr %#x.\n", hr);
+    ok(!display_name, "Unexpected pointer.\n");
 
     IBindCtx_Release(bindctx);
 




More information about the wine-cvs mailing list