Alistair Leslie-Hughes : rasapi32: Return error on invalid parameters.
Alexandre Julliard
julliard at winehq.org
Tue Sep 6 11:35:53 CDT 2011
Module: wine
Branch: master
Commit: 7025db431b8086a1ca5156fe0bb2e290f824a999
URL: http://source.winehq.org/git/wine.git/?a=commit;h=7025db431b8086a1ca5156fe0bb2e290f824a999
Author: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date: Tue Sep 6 22:51:44 2011 +1000
rasapi32: Return error on invalid parameters.
---
dlls/rasapi32/rasapi.c | 4 ++++
dlls/rasapi32/tests/rasapi.c | 4 ----
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/dlls/rasapi32/rasapi.c b/dlls/rasapi32/rasapi.c
index 704a8bc..2184a22 100644
--- a/dlls/rasapi32/rasapi.c
+++ b/dlls/rasapi32/rasapi.c
@@ -250,6 +250,10 @@ DWORD WINAPI RasEnumDevicesA(LPRASDEVINFOA lpRasDevinfo, LPDWORD lpcb, LPDWORD l
return ERROR_INVALID_PARAMETER;
FIXME("(%p,%p,%p),stub!\n",lpRasDevinfo,lpcb,lpcDevices);
+
+ if(lpRasDevinfo && lpRasDevinfo->dwSize != sizeof(RASDEVINFOA))
+ return ERROR_INVALID_SIZE;
+
if (!lpRasDevinfo || (*lpcb < sizeof(RASDEVINFOA))) {
*lpcb = sizeof(RASDEVINFOA);
return ERROR_BUFFER_TOO_SMALL;
diff --git a/dlls/rasapi32/tests/rasapi.c b/dlls/rasapi32/tests/rasapi.c
index d25c741..e0ff25f 100644
--- a/dlls/rasapi32/tests/rasapi.c
+++ b/dlls/rasapi32/tests/rasapi.c
@@ -85,7 +85,6 @@ static void test_rasenum(void)
rasDevInfo[0].dwSize = 0;
cb = bufsize;
result = pRasEnumDevicesA(rasDevInfo, &cb, &cDevices);
- todo_wine
ok(result == ERROR_INVALID_SIZE ||
result == ERROR_INVALID_USER_BUFFER, /* win98 */
"Expected ERROR_INVALID_SIZE, got %08d\n", result);
@@ -93,7 +92,6 @@ static void test_rasenum(void)
rasDevInfo[0].dwSize = sizeof(RASDEVINFOA) -1;
cb = bufsize;
result = pRasEnumDevicesA(rasDevInfo, &cb, &cDevices);
- todo_wine
ok(result == ERROR_INVALID_SIZE ||
result == ERROR_INVALID_USER_BUFFER, /* win98 */
"Expected ERROR_INVALID_SIZE, got %08d\n", result);
@@ -101,7 +99,6 @@ static void test_rasenum(void)
rasDevInfo[0].dwSize = sizeof(RASDEVINFOA) +1;
cb = bufsize;
result = pRasEnumDevicesA(rasDevInfo, &cb, &cDevices);
- todo_wine
ok(result == ERROR_INVALID_SIZE ||
result == ERROR_INVALID_USER_BUFFER, /* win98 */
"Expected ERROR_INVALID_SIZE, got %08d\n", result);
@@ -151,7 +148,6 @@ static void test_rasenum(void)
cb = 0;
rasDevInfo[0].dwSize = 0;
result = pRasEnumDevicesA(rasDevInfo, &cb, &cDevices);
- todo_wine
ok(result == ERROR_INVALID_SIZE ||
broken(result == ERROR_BUFFER_TOO_SMALL), /* win98 */
"Expected ERROR_INVALID_SIZE, got %08d\n", result);
More information about the wine-cvs
mailing list