Reviewed by: Yao, Jiewen <jiewen....@intel.com>

-----Original Message-----
From: Zeng, Star 
Sent: Tuesday, July 21, 2015 5:02 PM
To: edk2-devel@lists.01.org
Cc: Yao, Jiewen
Subject: [PATCH 2/2] SecurityPkg AuthVariableLib: Correct address pointers data

Originally, the double pointer (VOID **) is not correct for convert address 
pointers, and also some address pointers were missing.

Cc: Jiewen Yao <jiewen....@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.z...@intel.com>
---
 SecurityPkg/Library/AuthVariableLib/AuthVariableLib.c | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/SecurityPkg/Library/AuthVariableLib/AuthVariableLib.c 
b/SecurityPkg/Library/AuthVariableLib/AuthVariableLib.c
index 02df309..d102219 100644
--- a/SecurityPkg/Library/AuthVariableLib/AuthVariableLib.c
+++ b/SecurityPkg/Library/AuthVariableLib/AuthVariableLib.c
@@ -101,7 +101,7 @@ VARIABLE_ENTRY_PROPERTY mAuthVarEntry[] = {
   },
 };
 
-VOID *mAddressPointer[3];
+VOID **mAuthVarAddressPointer[10];
 
 AUTH_VAR_LIB_CONTEXT_IN *mAuthVarLibContextIn = NULL;
 
@@ -406,11 +406,18 @@ AuthVariableLibInitialize (
   AuthVarLibContextOut->StructSize = sizeof (AUTH_VAR_LIB_CONTEXT_OUT);
   AuthVarLibContextOut->AuthVarEntry = mAuthVarEntry;
   AuthVarLibContextOut->AuthVarEntryCount = sizeof (mAuthVarEntry) / sizeof 
(mAuthVarEntry[0]);
-  mAddressPointer[0] = mHashCtx;
-  mAddressPointer[1] = mPubKeyStore;
-  mAddressPointer[2] = mCertDbStore;
-  AuthVarLibContextOut->AddressPointer = mAddressPointer;
-  AuthVarLibContextOut->AddressPointerCount = sizeof (mAddressPointer) / 
sizeof (mAddressPointer[0]);
+  mAuthVarAddressPointer[0] = &mPubKeyStore;  mAuthVarAddressPointer[1] 
+ = &mCertDbStore;  mAuthVarAddressPointer[2] = &mHashCtx;  
+ mAuthVarAddressPointer[3] = &mAuthVarLibContextIn;  
+ mAuthVarAddressPointer[4] = (VOID **) 
+ &(mAuthVarLibContextIn->FindVariable),
+  mAuthVarAddressPointer[5] = (VOID **) 
+ &(mAuthVarLibContextIn->FindNextVariable),
+  mAuthVarAddressPointer[6] = (VOID **) 
+ &(mAuthVarLibContextIn->UpdateVariable),
+  mAuthVarAddressPointer[7] = (VOID **) 
+ &(mAuthVarLibContextIn->GetScratchBuffer),
+  mAuthVarAddressPointer[8] = (VOID **) 
+ &(mAuthVarLibContextIn->CheckRemainingSpaceForConsistency),
+  mAuthVarAddressPointer[9] = (VOID **) 
+ &(mAuthVarLibContextIn->AtRuntime),
+  AuthVarLibContextOut->AddressPointer = mAuthVarAddressPointer;  
+ AuthVarLibContextOut->AddressPointerCount = sizeof 
+ (mAuthVarAddressPointer) / sizeof (mAuthVarAddressPointer[0]);
 
   return Status;
 }
--
1.9.5.msysgit.0

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

Reply via email to