Hi Gabriel, Eric,
Isn't the real issue why LogFile->Header.CurrentRecordNumber is off by one ? If that is found and fixed, this patch will make the error re-emerge as an off by -1. And if CurrentRecordNumber is actually used as the next *pending* record number, the identifier is somewhat mis-leading .. ?
Just my penny to the pot Best Regards L.
---------- Forwarded message ----------
From: Gabriel ilardi gabrielilardi@hotmail.it To: ros-dev ros-dev@reactos.org Date: Mon, 2 May 2011 21:50:03 +0200 Subject: Re: [ros-dev] [ros-diffs] [ekohl] 51558: [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... Great work on event service and event viewer... keep it up Eric :)
Date: Mon, 2 May 2011 19:38:24 +0000 To: ros-diffs@reactos.org From: ekohl@svn.reactos.org Subject: [ros-diffs] [ekohl] 51558: [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...
Author: ekohl Date: Mon May 2 19:38:23 2011 New Revision: 51558
URL: http://svn.reactos.org/svn/reactos?rev=51558&view=rev Log: [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.
Modified: trunk/reactos/base/applications/mscutils/eventvwr/eventvwr.c trunk/reactos/base/services/eventlog/rpc.c
Modified: trunk/reactos/base/applications/mscutils/eventvwr/eventvwr.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mscutils/...
==============================================================================
--- trunk/reactos/base/applications/mscutils/eventvwr/eventvwr.c
[iso-8859-1] (original)
+++ trunk/reactos/base/applications/mscutils/eventvwr/eventvwr.c
[iso-8859-1] Mon May 2 19:38:23 2011
@@ -503,7 +503,7 @@ 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;
Modified: trunk/reactos/base/services/eventlog/rpc.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/services/eventlog/rpc....
==============================================================================
--- trunk/reactos/base/services/eventlog/rpc.c [iso-8859-1] (original) +++ trunk/reactos/base/services/eventlog/rpc.c [iso-8859-1] Mon May 2
19:38:23 2011
@@ -199,6 +199,7 @@ DWORD *NumberOfRecords) { PLOGHANDLE lpLogHandle;
- DWORD dwRecords;
lpLogHandle = ElfGetLogHandleEntryByHandle(LogHandle); if (!lpLogHandle) @@ -206,7 +207,9 @@ return STATUS_INVALID_HANDLE; }
- *NumberOfRecords = lpLogHandle->LogFile->Header.CurrentRecordNumber;
- dwRecords = lpLogHandle->LogFile->Header.CurrentRecordNumber;
- *NumberOfRecords = (dwRecords > 0) ? (dwRecords - 1) : 0;
return STATUS_SUCCESS; }