RunAxf is a shell command used for running an Axf file. The ShellDynCmdRunAxfHandler() loads an ELF file or one processed by the Flashloader. It calls the appropriate loaders to load the file in memory and to obtain the entry point address.
The first argument to RunAxfPivot() is the entry point address for the image to execute. The patch https://github.com/tianocore/edk2-platforms/commit/996047695a06167a918b07b22fcd0fbd0def5da6 changes set/way cache maintenance operations to by-VA operation. This patch however introduced an error: 'variable StartElf is not initialized'. Since, StartElf is the first argument to RunAxfPivot(), which is expected to be the entry point address; RunAxfPivot() would end up branching to an invalid address resulting in a crash. Therefore, initialize StartElf to the entry point address before calling RunAxfPivot(). Signed-off-by: Sami Mujawar <sami.muja...@arm.com> --- The changes can be seen at: https://github.com/samimujawar/edk2-platforms/tree/769_runaxf_fix_uninit_var_v1 Notes: V1: - Fix uninitialized variable usage in RunAxf [SAMI] Platform/ARM/Library/ArmShellCmdRunAxf/RunAxf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Platform/ARM/Library/ArmShellCmdRunAxf/RunAxf.c b/Platform/ARM/Library/ArmShellCmdRunAxf/RunAxf.c index dbad50ae866ac91d796b70ce7eed1dda4ab99957..d23739ad38d922ea16b5dc615604e9016c30fcbe 100644 --- a/Platform/ARM/Library/ArmShellCmdRunAxf/RunAxf.c +++ b/Platform/ARM/Library/ArmShellCmdRunAxf/RunAxf.c @@ -2,7 +2,7 @@ * * Shell command for launching AXF files. * -* Copyright (c) 2014, ARM Limited. All rights reserved. +* Copyright (c) 2014 - 2020, ARM Limited. All rights reserved. * * SPDX-License-Identifier: BSD-2-Clause-Patent * @@ -315,6 +315,7 @@ ShellDynCmdRunAxfHandler ( // WriteBackDataCacheRange (LoadedImage->ImageBase, LoadedImage->ImageSize); + StartElf = (ELF_ENTRYPOINT)Entrypoint; RunAxfPivot (StartElf, 0, 0, 0, 0); // We should never get here.. But if we do, spin.. -- 'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)' -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#56942): https://edk2.groups.io/g/devel/message/56942 Mute This Topic: https://groups.io/mt/72751706/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-