Reviewed-by: Star Zeng <star.z...@intel.com>

-----Original Message-----
From: Gao, Liming 
Sent: Thursday, February 9, 2017 12:15 PM
To: edk2-devel@lists.01.org
Cc: Zeng, Star <star.z...@intel.com>
Subject: [Patch 2/2] MdeModulePkg PeiCore: Don't cache GUIDED section with 
AUTH_NOT_TESTED

If GUIDED section authentication has EFI_AUTH_STATUS_NOT_TESTED, its matched 
extraction ppi may not be installed. So, don't cache its data.

Cc: Star Zeng <star.z...@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming....@intel.com>
---
 MdeModulePkg/Core/Pei/FwVol/FwVol.c | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/MdeModulePkg/Core/Pei/FwVol/FwVol.c 
b/MdeModulePkg/Core/Pei/FwVol/FwVol.c
index 8d07bd0..0bbb86d 100644
--- a/MdeModulePkg/Core/Pei/FwVol/FwVol.c
+++ b/MdeModulePkg/Core/Pei/FwVol/FwVol.c
@@ -2,7 +2,7 @@
   Pei Core Firmware File System service routines.
   
 Copyright (c) 2015 HP Development Company, L.P.
-Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>
 This program and the accompanying materials                          
 are licensed and made available under the terms and conditions of the BSD 
License         
 which accompanies this distribution.  The full text of the license may be 
found at        
@@ -913,17 +913,19 @@ ProcessSection (
         }
 
         if (!EFI_ERROR (Status)) {
-          //
-          // Update cache section data.
-          //
-          if (PrivateData->CacheSection.AllSectionCount < 
CACHE_SETION_MAX_NUMBER) {
-            PrivateData->CacheSection.AllSectionCount ++;
+          if ((Authentication & EFI_AUTH_STATUS_NOT_TESTED) == 0) {
+            //
+            // Update cache section data.
+            //
+            if (PrivateData->CacheSection.AllSectionCount < 
CACHE_SETION_MAX_NUMBER) {
+              PrivateData->CacheSection.AllSectionCount ++;
+            }
+            PrivateData->CacheSection.Section 
[PrivateData->CacheSection.SectionIndex]     = Section;
+            PrivateData->CacheSection.SectionData 
[PrivateData->CacheSection.SectionIndex] = PpiOutput;
+            PrivateData->CacheSection.SectionSize 
[PrivateData->CacheSection.SectionIndex] = PpiOutputSize;
+            PrivateData->CacheSection.AuthenticationStatus 
[PrivateData->CacheSection.SectionIndex] = Authentication;
+            PrivateData->CacheSection.SectionIndex = 
+ (PrivateData->CacheSection.SectionIndex + 1)%CACHE_SETION_MAX_NUMBER;
           }
-          PrivateData->CacheSection.Section 
[PrivateData->CacheSection.SectionIndex]     = Section;
-          PrivateData->CacheSection.SectionData 
[PrivateData->CacheSection.SectionIndex] = PpiOutput;
-          PrivateData->CacheSection.SectionSize 
[PrivateData->CacheSection.SectionIndex] = PpiOutputSize;
-          PrivateData->CacheSection.AuthenticationStatus 
[PrivateData->CacheSection.SectionIndex] = Authentication;
-          PrivateData->CacheSection.SectionIndex = 
(PrivateData->CacheSection.SectionIndex + 1)%CACHE_SETION_MAX_NUMBER;
 
           TempAuthenticationStatus = 0;
           Status = ProcessSection (
--
2.8.0.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to