diff options
Diffstat (limited to 'ShellPkg/Application/Shell/ShellParametersProtocol.c')
-rw-r--r-- | ShellPkg/Application/Shell/ShellParametersProtocol.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/ShellPkg/Application/Shell/ShellParametersProtocol.c b/ShellPkg/Application/Shell/ShellParametersProtocol.c index 5fce9e5440..76935333d6 100644 --- a/ShellPkg/Application/Shell/ShellParametersProtocol.c +++ b/ShellPkg/Application/Shell/ShellParametersProtocol.c @@ -528,7 +528,7 @@ UpdateStdInStdOutStdErr( ErrAppend = FALSE;
OutAppend = FALSE;
CommandLineCopy = NULL;
- FirstLocation = (CHAR16*)(-1);
+ FirstLocation = NULL;
if (ShellParameters == NULL || SystemTableInfo == NULL || OldStdIn == NULL || OldStdOut == NULL || OldStdErr == NULL) {
return (EFI_INVALID_PARAMETER);
@@ -551,6 +551,7 @@ UpdateStdInStdOutStdErr( CommandLineCopy = StrnCatGrow(&CommandLineCopy, NULL, NewCommandLine, 0);
Status = EFI_SUCCESS;
Split = NULL;
+ FirstLocation = CommandLineCopy + StrLen(CommandLineCopy);
StripQuotes(CommandLineCopy);
@@ -810,7 +811,7 @@ UpdateStdInStdOutStdErr( }
}
- if (FirstLocation != (CHAR16*)(-1)
+ if (FirstLocation != CommandLineCopy + StrLen(CommandLineCopy)
&& ((UINTN)(FirstLocation - CommandLineCopy) < StrLen(NewCommandLine))
){
*(NewCommandLine + (UINTN)(FirstLocation - CommandLineCopy)) = CHAR_NULL;
|