summaryrefslogtreecommitdiff
path: root/board/cr50/tpm2/virtual_nvmem.c
diff options
context:
space:
mode:
Diffstat (limited to 'board/cr50/tpm2/virtual_nvmem.c')
-rw-r--r--board/cr50/tpm2/virtual_nvmem.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/board/cr50/tpm2/virtual_nvmem.c b/board/cr50/tpm2/virtual_nvmem.c
index 196f4c0416..aa4ce95724 100644
--- a/board/cr50/tpm2/virtual_nvmem.c
+++ b/board/cr50/tpm2/virtual_nvmem.c
@@ -290,11 +290,14 @@ BUILD_ASSERT(VIRTUAL_NV_INDEX_SN_DATA_SIZE == sizeof(struct sn_data));
static void GetG2fCert(BYTE *to, size_t offset, size_t size)
{
uint8_t cert[G2F_ATTESTATION_CERT_MAX_LEN] = { 0 };
+ size_t certificate_len;
- if (!g2f_attestation_cert(cert))
- memset(cert, 0, G2F_ATTESTATION_CERT_MAX_LEN);
+ certificate_len = g2f_attestation_cert(cert);
- memcpy(to, ((BYTE *) cert) + offset, size);
+ if (certificate_len == 0)
+ memset(cert, 0, sizeof(cert));
+
+ memcpy(to, ((BYTE *)cert) + offset, size);
}
BUILD_ASSERT(VIRTUAL_NV_INDEX_G2F_CERT_SIZE == G2F_ATTESTATION_CERT_MAX_LEN);