]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPlatformPkg/Bds/BootOption.c
ArmPlatformPkg/Bds: Test if OptionalData is NULL before using it
[mirror_edk2.git] / ArmPlatformPkg / Bds / BootOption.c
index 5712d2ccb4f98dfab3b7cf813589e1163ac56948..80982222e160fad51cc14805622ed4ff5a67f04f 100644 (file)
@@ -221,6 +221,8 @@ BootOptionSetFields (
     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
@@ -237,7 +239,9 @@ BootOptionSetFields (
       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