Module: wine Branch: master Commit: 1f34fdffeeba80f4c0d37a1d816ef17c362897a5 URL: http://source.winehq.org/git/wine.git/?a=commit;h=1f34fdffeeba80f4c0d37a1d81...
Author: Huw Davies huw@codeweavers.com Date: Tue Nov 21 20:40:37 2006 +0000
ole32: CoGetInterfaceAndReleaseStream shouldn't crash when passed a NULL stream.
---
dlls/ole32/marshal.c | 1 + dlls/ole32/tests/marshal.c | 11 +++++++++++ 2 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/dlls/ole32/marshal.c b/dlls/ole32/marshal.c index fa45838..a3ff04e 100644 --- a/dlls/ole32/marshal.c +++ b/dlls/ole32/marshal.c @@ -1815,6 +1815,7 @@ HRESULT WINAPI CoGetInterfaceAndReleaseS
TRACE("(%p, %s, %p)\n", pStm, debugstr_guid(riid), ppv);
+ if(!pStm) return E_INVALIDARG; hres = CoUnmarshalInterface(pStm, riid, ppv); IStream_Release(pStm); return hres; diff --git a/dlls/ole32/tests/marshal.c b/dlls/ole32/tests/marshal.c index 4d0c5cd..e99983a 100644 --- a/dlls/ole32/tests/marshal.c +++ b/dlls/ole32/tests/marshal.c @@ -2253,6 +2253,15 @@ static void test_marshal_HENHMETAFILE(vo HENHMETAFILE_UserFree(&flags, &hemf2); }
+static void test_CoGetInterfaceAndReleaseStream(void) +{ + HRESULT hr; + IUnknown *pUnk; + + hr = CoGetInterfaceAndReleaseStream(NULL, &IID_IUnknown, (void**)&pUnk); + ok(hr == E_INVALIDARG, "hr %08x\n", hr); +} + START_TEST(marshal) { WNDCLASS wndclass; @@ -2313,6 +2322,8 @@ START_TEST(marshal) test_marshal_HGLOBAL(); test_marshal_HENHMETAFILE();
+ test_CoGetInterfaceAndReleaseStream(); + CoUninitialize(); return;