\r
#define ARM_BDS_OPTIONAL_DATA_SIGNATURE SIGNATURE_32('a', 'b', 'o', 'd')\r
\r
-#define IS_ARM_BDS_BOOTENTRY(ptr) (ReadUnaligned32 ((CONST UINT32*)&((ARM_BDS_LOADER_OPTIONAL_DATA*)((ptr)->OptionalData))->Header.Signature) == ARM_BDS_OPTIONAL_DATA_SIGNATURE)\r
+#define IS_ARM_BDS_BOOTENTRY(ptr) \\r
+ (((ptr)->OptionalData != NULL) && \\r
+ (ReadUnaligned32 ((CONST UINT32*)&((ARM_BDS_LOADER_OPTIONAL_DATA*)((ptr)->OptionalData))->Header.Signature) \\r
+ == ARM_BDS_OPTIONAL_DATA_SIGNATURE))\r
\r
#define UPDATE_BOOT_ENTRY L"Update entry: "\r
#define DELETE_BOOT_ENTRY L"Delete entry: "\r