Paul Vriens : advapi32: Add some input parameter checks to BackupEventLog.
Alexandre Julliard
julliard at winehq.org
Fri Oct 30 11:04:33 CDT 2009
Module: wine
Branch: master
Commit: d2227cb8a493eccb04e35328083973b4f7da4ebc
URL: http://source.winehq.org/git/wine.git/?a=commit;h=d2227cb8a493eccb04e35328083973b4f7da4ebc
Author: Paul Vriens <Paul.Vriens.Wine at gmail.com>
Date: Fri Oct 30 09:51:15 2009 +0100
advapi32: Add some input parameter checks to BackupEventLog.
---
dlls/advapi32/eventlog.c | 33 +++++++++++++++++++++++++++++----
dlls/advapi32/tests/eventlog.c | 7 -------
2 files changed, 29 insertions(+), 11 deletions(-)
diff --git a/dlls/advapi32/eventlog.c b/dlls/advapi32/eventlog.c
index 8ce255a..f72dba9 100644
--- a/dlls/advapi32/eventlog.c
+++ b/dlls/advapi32/eventlog.c
@@ -64,8 +64,14 @@ static inline LPWSTR SERV_dup( LPCSTR str )
*/
BOOL WINAPI BackupEventLogA( HANDLE hEventLog, LPCSTR lpBackupFileName )
{
- FIXME("(%p,%s) stub\n", hEventLog, debugstr_a(lpBackupFileName));
- return TRUE;
+ LPWSTR backupW;
+ BOOL ret;
+
+ backupW = SERV_dup(lpBackupFileName);
+ ret = BackupEventLogW(hEventLog, backupW);
+ HeapFree(GetProcessHeap(), 0, backupW);
+
+ return ret;
}
/******************************************************************************
@@ -75,8 +81,27 @@ BOOL WINAPI BackupEventLogA( HANDLE hEventLog, LPCSTR lpBackupFileName )
*/
BOOL WINAPI BackupEventLogW( HANDLE hEventLog, LPCWSTR lpBackupFileName )
{
- FIXME("(%p,%s) stub\n", hEventLog, debugstr_w(lpBackupFileName));
- return TRUE;
+ FIXME("(%p,%s) stub\n", hEventLog, debugstr_w(lpBackupFileName));
+
+ if (!lpBackupFileName)
+ {
+ SetLastError(ERROR_INVALID_PARAMETER);
+ return FALSE;
+ }
+
+ if (!hEventLog)
+ {
+ SetLastError(ERROR_INVALID_HANDLE);
+ return FALSE;
+ }
+
+ if (GetFileAttributesW(lpBackupFileName) != INVALID_FILE_ATTRIBUTES)
+ {
+ SetLastError(ERROR_ALREADY_EXISTS);
+ return FALSE;
+ }
+
+ return TRUE;
}
/******************************************************************************
diff --git a/dlls/advapi32/tests/eventlog.c b/dlls/advapi32/tests/eventlog.c
index 41319ca..9794f30 100644
--- a/dlls/advapi32/tests/eventlog.c
+++ b/dlls/advapi32/tests/eventlog.c
@@ -223,15 +223,11 @@ static void test_backup(void)
SetLastError(0xdeadbeef);
ret = BackupEventLogA(NULL, NULL);
- todo_wine
- {
ok(!ret, "Expected failure\n");
ok(GetLastError() == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", GetLastError());
- }
SetLastError(0xdeadbeef);
ret = BackupEventLogA(NULL, backup);
- todo_wine
ok(!ret, "Expected failure\n");
ok(GetFileAttributesA(backup) == INVALID_FILE_ATTRIBUTES, "Expected no backup file\n");
@@ -239,11 +235,8 @@ static void test_backup(void)
SetLastError(0xdeadbeef);
ret = BackupEventLogA(handle, NULL);
- todo_wine
- {
ok(!ret, "Expected failure\n");
ok(GetLastError() == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", GetLastError());
- }
ret = BackupEventLogA(handle, backup);
ok(ret, "Expected succes\n");
More information about the wine-cvs
mailing list