Paul Vriens : advapi32/tests: Add some input parameter checks.

Alexandre Julliard julliard at winehq.org
Tue Oct 27 09:46:34 CDT 2009


Module: wine
Branch: master
Commit: 84d689bd5838f786c35549f6af67b4bdde28aa42
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=84d689bd5838f786c35549f6af67b4bdde28aa42

Author: Paul Vriens <Paul.Vriens.Wine at gmail.com>
Date:   Tue Oct 27 09:33:55 2009 +0100

advapi32/tests: Add some input parameter checks.

---

 dlls/advapi32/eventlog.c       |   44 ++++++++++++++++++++++++++++++++++++---
 dlls/advapi32/tests/eventlog.c |    9 --------
 2 files changed, 40 insertions(+), 13 deletions(-)

diff --git a/dlls/advapi32/eventlog.c b/dlls/advapi32/eventlog.c
index 118bd11..82bff01 100644
--- a/dlls/advapi32/eventlog.c
+++ b/dlls/advapi32/eventlog.c
@@ -29,11 +29,25 @@
 #include "wmistr.h"
 #include "evntrace.h"
 
+#include "wine/unicode.h"
 #include "wine/debug.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(advapi);
 WINE_DECLARE_DEBUG_CHANNEL(eventlog);
 
+static inline LPWSTR SERV_dup( LPCSTR str )
+{
+    UINT len;
+    LPWSTR wstr;
+
+    if( !str )
+        return NULL;
+    len = MultiByteToWideChar( CP_ACP, 0, str, -1, NULL, 0 );
+    wstr = HeapAlloc( GetProcessHeap(), 0, len*sizeof (WCHAR) );
+    MultiByteToWideChar( CP_ACP, 0, str, -1, wstr, len );
+    return wstr;
+}
+
 /******************************************************************************
  * BackupEventLogA [ADVAPI32.@]
  *
@@ -283,8 +297,16 @@ HANDLE WINAPI OpenBackupEventLogW( LPCWSTR lpUNCServerName, LPCWSTR lpFileName )
  */
 HANDLE WINAPI OpenEventLogA( LPCSTR uncname, LPCSTR source )
 {
-	FIXME("(%s,%s) stub\n", debugstr_a(uncname), debugstr_a(source));
-	return (HANDLE)0xcafe4242;
+    LPWSTR uncnameW, sourceW;
+    HANDLE handle;
+
+    uncnameW = SERV_dup(uncname);
+    sourceW = SERV_dup(source);
+    handle = OpenEventLogW(uncnameW, sourceW);
+    HeapFree(GetProcessHeap(), 0, uncnameW);
+    HeapFree(GetProcessHeap(), 0, sourceW);
+
+    return handle;
 }
 
 /******************************************************************************
@@ -294,8 +316,22 @@ HANDLE WINAPI OpenEventLogA( LPCSTR uncname, LPCSTR source )
  */
 HANDLE WINAPI OpenEventLogW( LPCWSTR uncname, LPCWSTR source )
 {
-	FIXME("(%s,%s) stub\n", debugstr_w(uncname), debugstr_w(source));
-	return (HANDLE)0xcafe4242;
+    FIXME("(%s,%s) stub\n", debugstr_w(uncname), debugstr_w(source));
+
+    if (!source)
+    {
+        SetLastError(ERROR_INVALID_PARAMETER);
+        return NULL;
+    }
+
+    if (uncname)
+    {
+        FIXME("Remote server not supported\n");
+        SetLastError(RPC_S_SERVER_UNAVAILABLE);
+        return NULL;
+    }
+
+    return (HANDLE)0xcafe4242;
 }
 
 /******************************************************************************
diff --git a/dlls/advapi32/tests/eventlog.c b/dlls/advapi32/tests/eventlog.c
index 244a805..3567a8c 100644
--- a/dlls/advapi32/tests/eventlog.c
+++ b/dlls/advapi32/tests/eventlog.c
@@ -44,29 +44,20 @@ static void test_open_close(void)
 
     SetLastError(0xdeadbeef);
     handle = OpenEventLogA(NULL, NULL);
-    todo_wine
-    {
     ok(handle == NULL, "Didn't expect a handle\n");
     ok(GetLastError() == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", GetLastError());
-    }
 
     SetLastError(0xdeadbeef);
     handle = OpenEventLogA("IDontExist", NULL);
-    todo_wine
-    {
     ok(handle == NULL, "Didn't expect a handle\n");
     ok(GetLastError() == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", GetLastError());
-    }
 
     SetLastError(0xdeadbeef);
     handle = OpenEventLogA("IDontExist", "deadbeef");
-    todo_wine
-    {
     ok(handle == NULL, "Didn't expect a handle\n");
     ok(GetLastError() == RPC_S_SERVER_UNAVAILABLE ||
        GetLastError() == RPC_S_INVALID_NET_ADDR, /* Some Vista and Win7 */
        "Expected RPC_S_SERVER_UNAVAILABLE, got %d\n", GetLastError());
-    }
 
     /* This one opens the Application log */
     handle = OpenEventLogA(NULL, "deadbeef");




More information about the wine-cvs mailing list