From 2ebbe08cb6f2e1a52b672c220275bcde401a4413 Mon Sep 17 00:00:00 2001 From: gikidy Date: Wed, 3 Jun 2009 09:18:55 +0000 Subject: [PATCH] Fix an issue in DataHubGetNextRecord. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8458 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Universal/DataHubDxe/DataHub.c | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/IntelFrameworkModulePkg/Universal/DataHubDxe/DataHub.c b/IntelFrameworkModulePkg/Universal/DataHubDxe/DataHub.c index b58de9db6f..a2e991a288 100644 --- a/IntelFrameworkModulePkg/Universal/DataHubDxe/DataHub.c +++ b/IntelFrameworkModulePkg/Universal/DataHubDxe/DataHub.c @@ -243,19 +243,22 @@ DataHubGetNextRecord ( // Use the MTC from the Filter Driver. // FilterMonotonicCount = FilterDriver->GetNextMonotonicCount; + + // + // The GetNextMonotonicCount field remembers the last value from the previous time. + // But we already processed this vaule, so we need to find the next one. + // + *Record = GetNextDataRecord (&Private->DataListHead, ClassFilter, &FilterMonotonicCount); if (FilterMonotonicCount != 0) { - // - // The GetNextMonotonicCount field remembers the last value from the previous time. - // But we already processed this vaule, so we need to find the next one. - // - *Record = GetNextDataRecord (&Private->DataListHead, ClassFilter, &FilterMonotonicCount); *MonotonicCount = FilterMonotonicCount; - if (FilterMonotonicCount == 0) { - // - // If there is no new record to get exit now. - // - return EFI_NOT_FOUND; - } + } + + if ((FilterDriver->GetNextMonotonicCount != 0) && (FilterMonotonicCount == 0)) { + // + // If there is no new record to get exit now. + // + *MonotonicCount = 0; + return EFI_NOT_FOUND; } } }