summaryrefslogtreecommitdiff
path: root/ShellPkg/Library/UefiShellLevel2CommandsLib
diff options
context:
space:
mode:
authorPierre Gondois <pierre.gondois@arm.com>2025-12-01 17:00:21 +0300
committerArd Biesheuvel <workofard@gmail.com>2025-12-02 11:00:53 +0300
commit19c62fd3acd869c36dc514b5facb1ad797c366ae (patch)
treeacb499092132ee9a1eb007265f59ea092ad64131 /ShellPkg/Library/UefiShellLevel2CommandsLib
parent95476665c4fcb41a7eb43542e375830ada04d636 (diff)
downloadedk2-19c62fd3acd869c36dc514b5facb1ad797c366ae.tar.xz
ShellPkg/UefiShellLevel2: Fix CodeQl issues
Fix CodeQl issue triggered by the previous patches. - Rm: FileList might be NULL Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
Diffstat (limited to 'ShellPkg/Library/UefiShellLevel2CommandsLib')
-rw-r--r--ShellPkg/Library/UefiShellLevel2CommandsLib/Rm.c59
1 files changed, 31 insertions, 28 deletions
diff --git a/ShellPkg/Library/UefiShellLevel2CommandsLib/Rm.c b/ShellPkg/Library/UefiShellLevel2CommandsLib/Rm.c
index 49c746ceeb..fa71b31296 100644
--- a/ShellPkg/Library/UefiShellLevel2CommandsLib/Rm.c
+++ b/ShellPkg/Library/UefiShellLevel2CommandsLib/Rm.c
@@ -321,41 +321,44 @@ MainCmdRm (
}
}
- if (ShellStatus == SHELL_SUCCESS) {
+ if ((ShellStatus != SHELL_SUCCESS) || (FileList == NULL)) {
+ goto Exit;
+ }
+
+ //
+ // loop through the list and make sure we are not aborting...
+ //
+ for ( Node = (EFI_SHELL_FILE_INFO *)GetFirstNode (&FileList->Link)
+ ; !IsNull (&FileList->Link, &Node->Link) && !ShellGetExecutionBreakFlag ()
+ ; Node = (EFI_SHELL_FILE_INFO *)GetNextNode (&FileList->Link, &Node->Link)
+ )
+ {
//
- // loop through the list and make sure we are not aborting...
+ // skip the directory traversing stuff...
//
- for ( Node = (EFI_SHELL_FILE_INFO *)GetFirstNode (&FileList->Link)
- ; !IsNull (&FileList->Link, &Node->Link) && !ShellGetExecutionBreakFlag ()
- ; Node = (EFI_SHELL_FILE_INFO *)GetNextNode (&FileList->Link, &Node->Link)
- )
- {
- //
- // skip the directory traversing stuff...
- //
- if ((StrCmp (Node->FileName, L".") == 0) || (StrCmp (Node->FileName, L"..") == 0)) {
- continue;
- }
-
- //
- // do the deleting of nodes
- //
- if (EFI_ERROR (Node->Status)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_RM_LOG_DELETE_ERR2), gShellLevel2HiiHandle, Node->Status);
- ShellStatus = SHELL_ACCESS_DENIED;
- break;
- }
+ if ((StrCmp (Node->FileName, L".") == 0) || (StrCmp (Node->FileName, L"..") == 0)) {
+ continue;
+ }
- if (!IsValidDeleteTarget (FileList, Node, Package)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_RM_LOG_DELETE_ERR3), gShellLevel2HiiHandle, Node->FullName);
- ShellStatus = SHELL_INVALID_PARAMETER;
- break;
- }
+ //
+ // do the deleting of nodes
+ //
+ if (EFI_ERROR (Node->Status)) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_RM_LOG_DELETE_ERR2), gShellLevel2HiiHandle, Node->Status);
+ ShellStatus = SHELL_ACCESS_DENIED;
+ break;
+ }
- ShellStatus = CascadeDelete (Node, ShellCommandLineGetFlag (Package, L"-q"));
+ if (!IsValidDeleteTarget (FileList, Node, Package)) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_RM_LOG_DELETE_ERR3), gShellLevel2HiiHandle, Node->FullName);
+ ShellStatus = SHELL_INVALID_PARAMETER;
+ break;
}
+
+ ShellStatus = CascadeDelete (Node, ShellCommandLineGetFlag (Package, L"-q"));
}
+Exit:
//
// Free the fileList
//