},\r
};\r
\r
-VOID *mAddressPointer[3];\r
+VOID **mAuthVarAddressPointer[10];\r
\r
AUTH_VAR_LIB_CONTEXT_IN *mAuthVarLibContextIn = NULL;\r
\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
+ } else {\r
+ //\r
+ // Clean up Certs to make certDB & Time based auth variable consistent\r
+ //\r
+ Status = CleanCertsFromDb();\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((EFI_D_INFO, "Clean up CertDB fail! Status %x\n", Status));\r
+ return Status;\r
+ }\r
}\r
\r
//\r
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