ole32: Fix parameter validation for CoGetMalloc().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
f6bfc309ed
commit
12d73316e4
|
@ -368,17 +368,22 @@ static const IMallocVtbl VT_IMalloc32 =
|
|||
* Retrieves the current IMalloc interface for the process.
|
||||
*
|
||||
* PARAMS
|
||||
* dwMemContext [I]
|
||||
* lpMalloc [O] Address where memory allocator object will be stored.
|
||||
* context [I] Should always be MEMCTX_TASK.
|
||||
* imalloc [O] Address where memory allocator object will be stored.
|
||||
*
|
||||
* RETURNS
|
||||
* Success: S_OK.
|
||||
* Failure: HRESULT code.
|
||||
*/
|
||||
HRESULT WINAPI CoGetMalloc(DWORD dwMemContext, LPMALLOC *lpMalloc)
|
||||
HRESULT WINAPI CoGetMalloc(DWORD context, IMalloc **imalloc)
|
||||
{
|
||||
*lpMalloc = &Malloc32.IMalloc_iface;
|
||||
return S_OK;
|
||||
if (context != MEMCTX_TASK) {
|
||||
*imalloc = NULL;
|
||||
return E_INVALIDARG;
|
||||
}
|
||||
|
||||
*imalloc = &Malloc32.IMalloc_iface;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
|
|
|
@ -2629,34 +2629,29 @@ if (0) /* crashes on native */
|
|||
|
||||
imalloc = (void*)0xdeadbeef;
|
||||
hr = CoGetMalloc(0, &imalloc);
|
||||
todo_wine {
|
||||
ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
|
||||
ok(imalloc == NULL, "got %p\n", imalloc);
|
||||
}
|
||||
|
||||
imalloc = (void*)0xdeadbeef;
|
||||
hr = CoGetMalloc(MEMCTX_SHARED, &imalloc);
|
||||
todo_wine {
|
||||
ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
|
||||
ok(imalloc == NULL, "got %p\n", imalloc);
|
||||
}
|
||||
|
||||
imalloc = (void*)0xdeadbeef;
|
||||
hr = CoGetMalloc(MEMCTX_MACSYSTEM, &imalloc);
|
||||
todo_wine {
|
||||
ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
|
||||
ok(imalloc == NULL, "got %p\n", imalloc);
|
||||
}
|
||||
|
||||
imalloc = (void*)0xdeadbeef;
|
||||
hr = CoGetMalloc(MEMCTX_UNKNOWN, &imalloc);
|
||||
todo_wine {
|
||||
ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
|
||||
ok(imalloc == NULL, "got %p\n", imalloc);
|
||||
}
|
||||
|
||||
imalloc = (void*)0xdeadbeef;
|
||||
hr = CoGetMalloc(MEMCTX_SAME, &imalloc);
|
||||
todo_wine {
|
||||
ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
|
||||
ok(imalloc == NULL, "got %p\n", imalloc);
|
||||
}
|
||||
|
||||
imalloc = NULL;
|
||||
hr = CoGetMalloc(MEMCTX_TASK, &imalloc);
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
|
|
Loading…
Reference in New Issue