WriteUnaligned32 ((UINT32 *)EfiLoadOptionPtr, ARM_BDS_OPTIONAL_DATA_SIGNATURE);\r
WriteUnaligned32 ((UINT32 *)(EfiLoadOptionPtr + 4), BootType);\r
\r
+ // OptionalData should have been initialized by the caller of this function\r
+ ASSERT (OptionalData != NULL);\r
BootArguments = (ARM_BDS_LOADER_ARGUMENTS*)OptionalData;\r
SrcLinuxArguments = &(BootArguments->LinuxArguments);\r
DestLinuxArguments = &((ARM_BDS_LOADER_OPTIONAL_DATA*)EfiLoadOptionPtr)->Arguments.LinuxArguments;\r
CopyMem (InitrdPathListPtr, (VOID*)((UINTN)(SrcLinuxArguments + 1) + SrcLinuxArguments->CmdLineSize), SrcLinuxArguments->InitrdSize);\r
}\r
} else {\r
- CopyMem (BootOption->OptionalData, OptionalData, OptionalDataSize);\r
+ if (OptionalData != NULL) {\r
+ CopyMem (BootOption->OptionalData, OptionalData, OptionalDataSize);\r
+ }\r
}\r
BootOption->OptionalDataSize = OptionalDataSize;\r
\r