Module: wine Branch: master Commit: a22ca1c2d9b0b5be570bae18f56d933d10624b65 URL: http://source.winehq.org/git/wine.git/?a=commit;h=a22ca1c2d9b0b5be570bae18f5...
Author: Nikolay Sivov bunglehead@gmail.com Date: Wed Jan 7 09:07:06 2009 +0300
oleaut32: Check pointer in IPicture::get_Handle.
---
dlls/oleaut32/olepicture.c | 4 ++++ dlls/oleaut32/tests/olepicture.c | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/dlls/oleaut32/olepicture.c b/dlls/oleaut32/olepicture.c index 3d0af78..51423a2 100644 --- a/dlls/oleaut32/olepicture.c +++ b/dlls/oleaut32/olepicture.c @@ -519,6 +519,10 @@ static HRESULT WINAPI OLEPictureImpl_get_Handle(IPicture *iface, { OLEPictureImpl *This = (OLEPictureImpl *)iface; TRACE("(%p)->(%p)\n", This, phandle); + + if(!phandle) + return E_POINTER; + switch(This->desc.picType) { case PICTYPE_NONE: case PICTYPE_UNINITIALIZED: diff --git a/dlls/oleaut32/tests/olepicture.c b/dlls/oleaut32/tests/olepicture.c index 7bff9b0..6cf80b7 100644 --- a/dlls/oleaut32/tests/olepicture.c +++ b/dlls/oleaut32/tests/olepicture.c @@ -674,6 +674,19 @@ static void test_get_Attributes(void) IPicture_Release(pic); }
+static void test_get_Handle(void) +{ + IPicture *pic; + HRESULT hres; + + OleCreatePictureIndirect(NULL, &IID_IPicture, TRUE, (VOID**)&pic); + + hres = IPicture_get_Handle(pic, NULL); + ole_expect(hres, E_POINTER); + + IPicture_Release(pic); +} + START_TEST(olepicture) { hOleaut32 = GetModuleHandleA("oleaut32.dll"); @@ -702,6 +715,7 @@ START_TEST(olepicture) test_OleCreatePictureIndirect(); test_Render(); test_get_Attributes(); + test_get_Handle(); }