Huw Davies : ole32: CoGetInterfaceAndReleaseStream shouldn'
t crash when passed a NULL stream.
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Nov 22 05:21:15 CST 2006
Module: wine
Branch: master
Commit: 1f34fdffeeba80f4c0d37a1d816ef17c362897a5
URL: http://source.winehq.org/git/wine.git/?a=commit;h=1f34fdffeeba80f4c0d37a1d816ef17c362897a5
Author: Huw Davies <huw at 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;
More information about the wine-cvs
mailing list