]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ArmPlatformPkg/Bds: Test if OptionalData is NULL before using it
authorOlivier Martin <olivier.martin@arm.com>
Fri, 12 Dec 2014 19:13:04 +0000 (19:13 +0000)
committeroliviermartin <oliviermartin@Edk2>
Fri, 12 Dec 2014 19:13:04 +0000 (19:13 +0000)
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16515 6f19259b-4bc3-4df7-8a09-765794883524

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