From ec3f21cfa25ee5f23448263baa24abef466d3234 Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Mon, 2 May 2011 19:38:23 +0000 Subject: [PATCH] [EVENTVWR/EVENTLOG] Fix a double off-by-one bug: - The eventlog service was reporting one event more than was available (+1). - The event viewer did not display the latest event from the eventlog service (-1). See issue #6182 for more details. svn path=/trunk/; revision=51558 --- reactos/base/applications/mscutils/eventvwr/eventvwr.c | 2 +- reactos/base/services/eventlog/rpc.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/reactos/base/applications/mscutils/eventvwr/eventvwr.c b/reactos/base/applications/mscutils/eventvwr/eventvwr.c index 7f0a5e51e2e..db3b6f736aa 100644 --- a/reactos/base/applications/mscutils/eventvwr/eventvwr.c +++ b/reactos/base/applications/mscutils/eventvwr/eventvwr.c @@ -503,7 +503,7 @@ QueryEventMessages(LPWSTR lpMachineName, HWND hwndDlg; HANDLE hEventLog; EVENTLOGRECORD *pevlr; - DWORD dwRead, dwNeeded, dwThisRecord, dwTotalRecords = 0, dwCurrentRecord = 1, dwRecordsToRead = 0, dwFlags, dwMaxLength; + DWORD dwRead, dwNeeded, dwThisRecord, dwTotalRecords = 0, dwCurrentRecord = 0, dwRecordsToRead = 0, dwFlags, dwMaxLength; LPWSTR lpSourceName; LPWSTR lpComputerName; LPSTR lpData; diff --git a/reactos/base/services/eventlog/rpc.c b/reactos/base/services/eventlog/rpc.c index cf855757292..5991da71f76 100644 --- a/reactos/base/services/eventlog/rpc.c +++ b/reactos/base/services/eventlog/rpc.c @@ -199,6 +199,7 @@ NTSTATUS ElfrNumberOfRecords( DWORD *NumberOfRecords) { PLOGHANDLE lpLogHandle; + DWORD dwRecords; lpLogHandle = ElfGetLogHandleEntryByHandle(LogHandle); if (!lpLogHandle) @@ -206,7 +207,9 @@ NTSTATUS ElfrNumberOfRecords( return STATUS_INVALID_HANDLE; } - *NumberOfRecords = lpLogHandle->LogFile->Header.CurrentRecordNumber; + dwRecords = lpLogHandle->LogFile->Header.CurrentRecordNumber; + + *NumberOfRecords = (dwRecords > 0) ? (dwRecords - 1) : 0; return STATUS_SUCCESS; } -- 2.17.1