Module: wine Branch: master Commit: 70ebae341d35f4de2928a0b432759dc347ac52a0 URL: http://source.winehq.org/git/wine.git/?a=commit;h=70ebae341d35f4de2928a0b432...
Author: Jeff Latimer lats@yless4u.com.au Date: Tue Aug 5 22:16:01 2008 +1000
user32: DdeClientTransaction should check that pData is not NULL for XTYP_REQUEST.
---
dlls/user32/dde_client.c | 5 +++++ dlls/user32/tests/dde.c | 5 +---- 2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/dlls/user32/dde_client.c b/dlls/user32/dde_client.c index 69b18d5..738d511 100644 --- a/dlls/user32/dde_client.c +++ b/dlls/user32/dde_client.c @@ -1154,6 +1154,11 @@ HDDEDATA WINAPI DdeClientTransaction(LPBYTE pData, DWORD cbData, HCONV hConv, HS { case XTYP_EXECUTE: /* Windows simply ignores hszItem and wFmt in this case */ + if (pData == NULL) + { + pConv->instance->lastError = DMLERR_INVALIDPARAMETER; + return 0; + } pXAct = WDML_ClientQueueExecute(pConv, pData, cbData); break; case XTYP_POKE: diff --git a/dlls/user32/tests/dde.c b/dlls/user32/tests/dde.c index 082a8bf..92ce3a9 100644 --- a/dlls/user32/tests/dde.c +++ b/dlls/user32/tests/dde.c @@ -433,10 +433,7 @@ todo_wine ret = DdeGetLastError(client_pid); ok(op == NULL, "Expected NULL, got %p\n", op); ok(res == 0xdeadbeef, "Expected 0xdeadbeef, got %d\n", res); - todo_wine - { - ok(ret == DMLERR_INVALIDPARAMETER, "Expected DMLERR_INVALIDPARAMETER, got %d\n", ret); - } + ok(ret == DMLERR_INVALIDPARAMETER, "Expected DMLERR_INVALIDPARAMETER, got %d\n", ret);
DdeFreeStringHandle(client_pid, topic); DdeFreeDataHandle(hdata);