diff --git a/include/efiauthenticated.h b/include/efiauthenticated.h index a9c395f..7157ffd 100644 --- a/include/efiauthenticated.h +++ b/include/efiauthenticated.h @@ -119,8 +119,6 @@ typedef struct { //UINT8 Signature[]; } WIN_CERTIFICATE_EFI_PKCS1_15; -#define OFFSET_OF(TYPE, Field) ((UINTN) &(((TYPE *)0)->Field)) - /* * Attributes of Authenticated Variable */ @@ -182,14 +180,14 @@ typedef struct { /* * Size of AuthInfo prior to the data payload. */ -#define AUTHINFO_SIZE ((OFFSET_OF (EFI_VARIABLE_AUTHENTICATION, AuthInfo)) + \ - (OFFSET_OF (WIN_CERTIFICATE_UEFI_GUID, CertData)) + \ +#define AUTHINFO_SIZE ((offsetof(EFI_VARIABLE_AUTHENTICATION, AuthInfo)) + \ + (offsetof(WIN_CERTIFICATE_UEFI_GUID, CertData)) + \ sizeof (EFI_CERT_BLOCK_RSA_2048_SHA256)) -#define AUTHINFO2_SIZE(VarAuth2) ((OFFSET_OF (EFI_VARIABLE_AUTHENTICATION_2, AuthInfo)) + \ +#define AUTHINFO2_SIZE(VarAuth2) ((offsetof(EFI_VARIABLE_AUTHENTICATION_2, AuthInfo)) + \ (UINTN) ((EFI_VARIABLE_AUTHENTICATION_2 *) (VarAuth2))->AuthInfo.Hdr.dwLength) -#define OFFSET_OF_AUTHINFO2_CERT_DATA ((OFFSET_OF (EFI_VARIABLE_AUTHENTICATION_2, AuthInfo)) + \ - (OFFSET_OF (WIN_CERTIFICATE_UEFI_GUID, CertData))) +#define OFFSET_OF_AUTHINFO2_CERT_DATA ((offsetof(EFI_VARIABLE_AUTHENTICATION_2, AuthInfo)) + \ + (offsetof(WIN_CERTIFICATE_UEFI_GUID, CertData))) #endif /* SHIM_EFIAUTHENTICATED_H */ diff --git a/lib/simple_file.c b/lib/simple_file.c index 2b82313..b9bafd3 100644 --- a/lib/simple_file.c +++ b/lib/simple_file.c @@ -314,7 +314,7 @@ simple_dir_filter(EFI_HANDLE image, CHAR16 *name, CHAR16 *filter, break; } } - ptr += OFFSET_OF(EFI_FILE_INFO, FileName) + (len + 1)*sizeof(CHAR16); + ptr += offsetof(EFI_FILE_INFO, FileName) + (len + 1)*sizeof(CHAR16); next = ptr; } if (*count) @@ -367,7 +367,7 @@ simple_dir_filter(EFI_HANDLE image, CHAR16 *name, CHAR16 *filter, (*result)[0] = tmp; } - ptr += OFFSET_OF(EFI_FILE_INFO, FileName) + (len + 1)*sizeof(CHAR16); + ptr += offsetof(EFI_FILE_INFO, FileName) + (len + 1)*sizeof(CHAR16); next = ptr; } if (*count == 0) { diff --git a/lib/variables.c b/lib/variables.c index 0abd6a0..044ddae 100644 --- a/lib/variables.c +++ b/lib/variables.c @@ -74,10 +74,8 @@ CreateTimeBasedPayload(IN OUT UINTN * DataSize, IN OUT UINT8 ** Data) Payload = *Data; PayloadSize = *DataSize; - DescriptorSize = - OFFSET_OF(EFI_VARIABLE_AUTHENTICATION_2, - AuthInfo) + OFFSET_OF(WIN_CERTIFICATE_UEFI_GUID, - CertData); + DescriptorSize = offsetof(EFI_VARIABLE_AUTHENTICATION_2, AuthInfo) + + offsetof(WIN_CERTIFICATE_UEFI_GUID, CertData); NewData = (UINT8 *) AllocateZeroPool(DescriptorSize + PayloadSize); if (NewData == NULL) { return EFI_OUT_OF_RESOURCES; @@ -103,7 +101,7 @@ CreateTimeBasedPayload(IN OUT UINTN * DataSize, IN OUT UINT8 ** Data) CopyMem(&DescriptorData->TimeStamp, &Time, sizeof(EFI_TIME)); DescriptorData->AuthInfo.Hdr.dwLength = - OFFSET_OF(WIN_CERTIFICATE_UEFI_GUID, CertData); + offsetof(WIN_CERTIFICATE_UEFI_GUID, CertData); DescriptorData->AuthInfo.Hdr.wRevision = 0x0200; DescriptorData->AuthInfo.Hdr.wCertificateType = WIN_CERT_TYPE_EFI_GUID; DescriptorData->AuthInfo.CertType = EFI_CERT_TYPE_PKCS7_GUID; diff --git a/shim.h b/shim.h index 89d2432..70fdf77 100644 --- a/shim.h +++ b/shim.h @@ -4,6 +4,8 @@ #include #include +#include + #define min(a, b) ({(a) < (b) ? (a) : (b);}) #ifdef __x86_64__