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