From: xgu3 Date: Thu, 10 Aug 2006 12:53:55 +0000 (+0000) Subject: Fix BDS boot from file . and .. fail assertion X-Git-Tag: edk2-stable201903~24636 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=4224ac208726ee643afc2d3712b6bf4b86184fb4 Fix BDS boot from file . and .. fail assertion git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1237 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/EdkNt32Pkg/Dxe/PlatformBds/Generic/BootMaint/BootOption.c b/EdkNt32Pkg/Dxe/PlatformBds/Generic/BootMaint/BootOption.c index 13e82759e1..57b5239530 100644 --- a/EdkNt32Pkg/Dxe/PlatformBds/Generic/BootMaint/BootOption.c +++ b/EdkNt32Pkg/Dxe/PlatformBds/Generic/BootMaint/BootOption.c @@ -1055,6 +1055,27 @@ Returns: return MenuCount; } +CHAR16 * +BdsStrCpy ( + OUT CHAR16 *Destination, + IN CONST CHAR16 *Source + ) +{ + CHAR16 *ReturnValue; + + // + // Destination cannot be NULL + // + ASSERT (Destination != NULL); + + ReturnValue = Destination; + while (*Source) { + *(Destination++) = *(Source++); + } + *Destination = 0; + return ReturnValue; +} + CHAR16 * BOpt_AppendFileName ( IN CHAR16 *Str1, @@ -1102,13 +1123,13 @@ Returns: // DO NOT convert the .. if it is at the end of the string. This will // break the .. behavior in changing directories. // - StrCpy (LastSlash, Ptr + 3); + BdsStrCpy (LastSlash, Ptr + 3); Ptr = LastSlash; } else if (*Ptr == '\\' && *(Ptr + 1) == '.' && *(Ptr + 2) == '\\') { // // Convert a \.\ to a \ // - StrCpy (Ptr, Ptr + 2); + BdsStrCpy (Ptr, Ptr + 2); Ptr = LastSlash; } else if (*Ptr == '\\') { LastSlash = Ptr;