Skip to content

Commit

Permalink
Fix key database parsing
Browse files Browse the repository at this point in the history
The pointer to the certificate needs to be incremented by the size of the
entire certificate, not just the certificate data.
  • Loading branch information
Matthew Garrett committed Oct 23, 2012
1 parent cdde659 commit 59f2e0a
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions MokManager.c
Expand Up @@ -108,15 +108,15 @@ static MokListNode *build_mok_list(UINT32 num, void *Data, UINTN DataSize) {
(CompareGuid (&CertList->SignatureType, &HashType) != 0)) { (CompareGuid (&CertList->SignatureType, &HashType) != 0)) {
dbsize -= CertList->SignatureListSize; dbsize -= CertList->SignatureListSize;
CertList = (EFI_SIGNATURE_LIST *)((UINT8 *) CertList + CertList = (EFI_SIGNATURE_LIST *)((UINT8 *) CertList +
CertList->SignatureSize); CertList->SignatureListSize);
continue; continue;
} }


if ((CompareGuid (&CertList->SignatureType, &HashType) == 0) && if ((CompareGuid (&CertList->SignatureType, &HashType) == 0) &&
(CertList->SignatureSize != 48)) { (CertList->SignatureSize != 48)) {
dbsize -= CertList->SignatureListSize; dbsize -= CertList->SignatureListSize;
CertList = (EFI_SIGNATURE_LIST *)((UINT8 *) CertList + CertList = (EFI_SIGNATURE_LIST *)((UINT8 *) CertList +
CertList->SignatureSize); CertList->SignatureListSize);
continue; continue;
} }


Expand All @@ -129,7 +129,7 @@ static MokListNode *build_mok_list(UINT32 num, void *Data, UINTN DataSize) {
count++; count++;
dbsize -= CertList->SignatureListSize; dbsize -= CertList->SignatureListSize;
CertList = (EFI_SIGNATURE_LIST *) ((UINT8 *) CertList + CertList = (EFI_SIGNATURE_LIST *) ((UINT8 *) CertList +
CertList->SignatureSize); CertList->SignatureListSize);
} }


return list; return list;
Expand Down Expand Up @@ -414,7 +414,7 @@ static UINT8 list_keys (void *MokNew, UINTN MokNewSize)
Print(L"Doesn't look like a key or hash\n"); Print(L"Doesn't look like a key or hash\n");
dbsize -= CertList->SignatureListSize; dbsize -= CertList->SignatureListSize;
CertList = (EFI_SIGNATURE_LIST *) ((UINT8 *) CertList + CertList = (EFI_SIGNATURE_LIST *) ((UINT8 *) CertList +
CertList->SignatureSize); CertList->SignatureListSize);
continue; continue;
} }


Expand All @@ -423,14 +423,14 @@ static UINT8 list_keys (void *MokNew, UINTN MokNewSize)
Print(L"Doesn't look like a valid hash\n"); Print(L"Doesn't look like a valid hash\n");
dbsize -= CertList->SignatureListSize; dbsize -= CertList->SignatureListSize;
CertList = (EFI_SIGNATURE_LIST *) ((UINT8 *) CertList + CertList = (EFI_SIGNATURE_LIST *) ((UINT8 *) CertList +
CertList->SignatureSize); CertList->SignatureListSize);
continue; continue;
} }


MokNum++; MokNum++;
dbsize -= CertList->SignatureListSize; dbsize -= CertList->SignatureListSize;
CertList = (EFI_SIGNATURE_LIST *) ((UINT8 *) CertList + CertList = (EFI_SIGNATURE_LIST *) ((UINT8 *) CertList +
CertList->SignatureSize); CertList->SignatureListSize);
} }


keys = build_mok_list(MokNum, MokNew, MokNewSize); keys = build_mok_list(MokNum, MokNew, MokNewSize);
Expand Down

0 comments on commit 59f2e0a

Please sign in to comment.