On Fri, 3 Apr 2020 at 18:05, Sami Mujawar <sami.muja...@arm.com> wrote: > > 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>
Reviewed-by: Ard Biesheuvel <ard.biesheu...@arm.com> Pushed as 5780623dc5c8..1d59c5b912d9 Thanks Sami > --- > > 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 (#56973): https://edk2.groups.io/g/devel/message/56973 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] -=-=-=-=-=-=-=-=-=-=-=-