[PATCH] Remove out pointer check in OleCreatePictureIndirect, it should crash
Nikolay Sivov
nsivov at codeweavers.com
Tue Aug 24 13:36:38 CDT 2010
---
dlls/oleaut32/olepicture.c | 15 +++------------
dlls/oleaut32/tests/olepicture.c | 10 +++++++++-
2 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/dlls/oleaut32/olepicture.c b/dlls/oleaut32/olepicture.c
index bd93ffa..aaab2a1 100644
--- a/dlls/oleaut32/olepicture.c
+++ b/dlls/oleaut32/olepicture.c
@@ -2142,25 +2142,16 @@ static const IConnectionPointContainerVtbl OLEPictureImpl_IConnectionPointContai
* OleCreatePictureIndirect (OLEAUT32.419)
*/
HRESULT WINAPI OleCreatePictureIndirect(LPPICTDESC lpPictDesc, REFIID riid,
- BOOL fOwn, LPVOID *ppvObj )
+ BOOL Own, void **ppvObj )
{
OLEPictureImpl* newPict;
HRESULT hr;
- TRACE("(%p,%s,%d,%p)\n", lpPictDesc, debugstr_guid(riid), fOwn, ppvObj);
-
- /*
- * Sanity check
- */
- if (ppvObj==0)
- return E_POINTER;
+ TRACE("(%p,%s,%d,%p)\n", lpPictDesc, debugstr_guid(riid), Own, ppvObj);
*ppvObj = NULL;
- /*
- * Try to construct a new instance of the class.
- */
- newPict = OLEPictureImpl_Construct(lpPictDesc, fOwn);
+ newPict = OLEPictureImpl_Construct(lpPictDesc, Own);
if (newPict == NULL)
return E_OUTOFMEMORY;
diff --git a/dlls/oleaut32/tests/olepicture.c b/dlls/oleaut32/tests/olepicture.c
index 9ab2515..03d47db 100644
--- a/dlls/oleaut32/tests/olepicture.c
+++ b/dlls/oleaut32/tests/olepicture.c
@@ -481,10 +481,10 @@ static void test_Invoke(void)
static void test_OleCreatePictureIndirect(void)
{
+ OLE_HANDLE handle;
IPicture *pict;
HRESULT hr;
short type;
- OLE_HANDLE handle;
if(!pOleCreatePictureIndirect)
{
@@ -492,13 +492,21 @@ static void test_OleCreatePictureIndirect(void)
return;
}
+if (0)
+{
+ /* crashes on native */
+ hr = pOleCreatePictureIndirect(NULL, &IID_IPicture, TRUE, NULL);
+}
+
hr = pOleCreatePictureIndirect(NULL, &IID_IPicture, TRUE, (void**)&pict);
ok(hr == S_OK, "hr %08x\n", hr);
+ type = PICTYPE_NONE;
hr = IPicture_get_Type(pict, &type);
ok(hr == S_OK, "hr %08x\n", hr);
ok(type == PICTYPE_UNINITIALIZED, "type %d\n", type);
+ handle = 0xdeadbeef;
hr = IPicture_get_Handle(pict, &handle);
ok(hr == S_OK, "hr %08x\n", hr);
ok(handle == 0, "handle %08x\n", handle);
--
1.5.6.5
--------------060708010304010803020607--
More information about the wine-patches
mailing list