Module: wine Branch: master Commit: 4fb3518e2ae8126c9c66f5546abadba6e9111ddb URL: http://source.winehq.org/git/wine.git/?a=commit;h=4fb3518e2ae8126c9c66f5546a...
Author: James Hawkins truiken@gmail.com Date: Fri Oct 12 00:20:08 2007 -0500
user32: Return DMLERR_INVALIDPARAMETER if hszItem is NULL.
---
dlls/user32/dde_client.c | 9 +++++++-- dlls/user32/tests/dde.c | 10 ++-------- 2 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/dlls/user32/dde_client.c b/dlls/user32/dde_client.c index 16e6daa..fe2dada 100644 --- a/dlls/user32/dde_client.c +++ b/dlls/user32/dde_client.c @@ -1141,8 +1141,13 @@ HDDEDATA WINAPI DdeClientTransaction(LPBYTE pData, DWORD cbData, HCONV hConv, HS pXAct = WDML_ClientQueueExecute(pConv, pData, cbData); break; case XTYP_POKE: - pXAct = WDML_ClientQueuePoke(pConv, pData, cbData, wFmt, hszItem); - break; + if (!hszItem) + { + pConv->instance->lastError = DMLERR_INVALIDPARAMETER; + return 0; + } + pXAct = WDML_ClientQueuePoke(pConv, pData, cbData, wFmt, hszItem); + break; case XTYP_ADVSTART|XTYPF_NODATA: case XTYP_ADVSTART|XTYPF_NODATA|XTYPF_ACKREQ: case XTYP_ADVSTART: diff --git a/dlls/user32/tests/dde.c b/dlls/user32/tests/dde.c index 5d0c915..1601cd1 100644 --- a/dlls/user32/tests/dde.c +++ b/dlls/user32/tests/dde.c @@ -358,10 +358,7 @@ static void test_ddeml_client(void) 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);
/* XTYP_POKE, no data */ res = 0xdeadbeef; @@ -370,10 +367,7 @@ static void test_ddeml_client(void) 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);
/* XTYP_POKE, wrong size */ res = 0xdeadbeef;