diff options
| author | Matthew Garrett <mjg@redhat.com> | 2012-10-23 10:04:02 -0400 |
|---|---|---|
| committer | Matthew Garrett <mjg@redhat.com> | 2012-10-23 13:00:40 -0400 |
| commit | 59f2e0a28915e5a615bdde0b8c2465b7688a7e5b (patch) | |
| tree | 40d7c0c6941b52fe13583857e1bbe475053b3065 | |
| parent | cdde65912ac193231959f4c692a52af52198a5ad (diff) | |
| download | efi-boot-shim-59f2e0a28915e5a615bdde0b8c2465b7688a7e5b.tar.gz efi-boot-shim-59f2e0a28915e5a615bdde0b8c2465b7688a7e5b.zip | |
Fix key database parsing
The pointer to the certificate needs to be incremented by the size of the
entire certificate, not just the certificate data.
| -rw-r--r-- | MokManager.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/MokManager.c b/MokManager.c index 08e1d363..282fbc6a 100644 --- a/MokManager.c +++ b/MokManager.c @@ -108,7 +108,7 @@ static MokListNode *build_mok_list(UINT32 num, void *Data, UINTN DataSize) { (CompareGuid (&CertList->SignatureType, &HashType) != 0)) { dbsize -= CertList->SignatureListSize; CertList = (EFI_SIGNATURE_LIST *)((UINT8 *) CertList + - CertList->SignatureSize); + CertList->SignatureListSize); continue; } @@ -116,7 +116,7 @@ static MokListNode *build_mok_list(UINT32 num, void *Data, UINTN DataSize) { (CertList->SignatureSize != 48)) { dbsize -= CertList->SignatureListSize; CertList = (EFI_SIGNATURE_LIST *)((UINT8 *) CertList + - CertList->SignatureSize); + CertList->SignatureListSize); continue; } @@ -129,7 +129,7 @@ static MokListNode *build_mok_list(UINT32 num, void *Data, UINTN DataSize) { count++; dbsize -= CertList->SignatureListSize; CertList = (EFI_SIGNATURE_LIST *) ((UINT8 *) CertList + - CertList->SignatureSize); + CertList->SignatureListSize); } return list; @@ -414,7 +414,7 @@ static UINT8 list_keys (void *MokNew, UINTN MokNewSize) Print(L"Doesn't look like a key or hash\n"); dbsize -= CertList->SignatureListSize; CertList = (EFI_SIGNATURE_LIST *) ((UINT8 *) CertList + - CertList->SignatureSize); + CertList->SignatureListSize); continue; } @@ -423,14 +423,14 @@ static UINT8 list_keys (void *MokNew, UINTN MokNewSize) Print(L"Doesn't look like a valid hash\n"); dbsize -= CertList->SignatureListSize; CertList = (EFI_SIGNATURE_LIST *) ((UINT8 *) CertList + - CertList->SignatureSize); + CertList->SignatureListSize); continue; } MokNum++; dbsize -= CertList->SignatureListSize; CertList = (EFI_SIGNATURE_LIST *) ((UINT8 *) CertList + - CertList->SignatureSize); + CertList->SignatureListSize); } keys = build_mok_list(MokNum, MokNew, MokNewSize); |
