]> git.proxmox.com Git - mirror_edk2.git/commitdiff
SecurityPkg AuthVariableLib: Correct address pointers data
authorStar Zeng <star.zeng@intel.com>
Sun, 26 Jul 2015 08:03:54 +0000 (08:03 +0000)
committerjljusten <jljusten@Edk2>
Sun, 26 Jul 2015 08:03:54 +0000 (08:03 +0000)
Originally, the double pointer (VOID **) is not correct for convert
address pointers, and also some address pointers were missing.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Jiewen Yao <Jiewen.Yao@intel.com>
[lersek@redhat.com: fix up gcc build failure -- add more (VOID **) casts]
Tested-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18055 6f19259b-4bc3-4df7-8a09-765794883524

SecurityPkg/Library/AuthVariableLib/AuthVariableLib.c

index 02df309802ef1c9a56afc94d9aa7d356ec38f3d0..a54eaaa066bb53b744dc1a6c4bee61d3d2d25c78 100644 (file)
@@ -101,7 +101,7 @@ VARIABLE_ENTRY_PROPERTY mAuthVarEntry[] = {
   },\r
 };\r
 \r
-VOID *mAddressPointer[3];\r
+VOID **mAuthVarAddressPointer[10];\r
 \r
 AUTH_VAR_LIB_CONTEXT_IN *mAuthVarLibContextIn = NULL;\r
 \r
@@ -406,11 +406,18 @@ AuthVariableLibInitialize (
   AuthVarLibContextOut->StructSize = sizeof (AUTH_VAR_LIB_CONTEXT_OUT);\r
   AuthVarLibContextOut->AuthVarEntry = mAuthVarEntry;\r
   AuthVarLibContextOut->AuthVarEntryCount = sizeof (mAuthVarEntry) / sizeof (mAuthVarEntry[0]);\r
-  mAddressPointer[0] = mHashCtx;\r
-  mAddressPointer[1] = mPubKeyStore;\r
-  mAddressPointer[2] = mCertDbStore;\r
-  AuthVarLibContextOut->AddressPointer = mAddressPointer;\r
-  AuthVarLibContextOut->AddressPointerCount = sizeof (mAddressPointer) / sizeof (mAddressPointer[0]);\r
+  mAuthVarAddressPointer[0] = (VOID **) &mPubKeyStore;\r
+  mAuthVarAddressPointer[1] = (VOID **) &mCertDbStore;\r
+  mAuthVarAddressPointer[2] = (VOID **) &mHashCtx;\r
+  mAuthVarAddressPointer[3] = (VOID **) &mAuthVarLibContextIn;\r
+  mAuthVarAddressPointer[4] = (VOID **) &(mAuthVarLibContextIn->FindVariable),\r
+  mAuthVarAddressPointer[5] = (VOID **) &(mAuthVarLibContextIn->FindNextVariable),\r
+  mAuthVarAddressPointer[6] = (VOID **) &(mAuthVarLibContextIn->UpdateVariable),\r
+  mAuthVarAddressPointer[7] = (VOID **) &(mAuthVarLibContextIn->GetScratchBuffer),\r
+  mAuthVarAddressPointer[8] = (VOID **) &(mAuthVarLibContextIn->CheckRemainingSpaceForConsistency),\r
+  mAuthVarAddressPointer[9] = (VOID **) &(mAuthVarLibContextIn->AtRuntime),\r
+  AuthVarLibContextOut->AddressPointer = mAuthVarAddressPointer;\r
+  AuthVarLibContextOut->AddressPointerCount = sizeof (mAuthVarAddressPointer) / sizeof (mAuthVarAddressPointer[0]);\r
 \r
   return Status;\r
 }\r