PathCleanUpDirectories does not handle "<dir>\..\<file>" properly; it returns "<dir>\<file>" instead of "<file>". This change fixes that problem so that "<file>" is returned.
Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Jim Dailey <[email protected]> --- MdePkg/Library/BaseLib/FilePaths.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/MdePkg/Library/BaseLib/FilePaths.c b/MdePkg/Library/BaseLib/FilePaths.c index 92e4c350ff..69e46dd135 100644 --- a/MdePkg/Library/BaseLib/FilePaths.c +++ b/MdePkg/Library/BaseLib/FilePaths.c @@ -110,7 +110,12 @@ PathCleanUpDirectories( ((*(TempString + 3) == L'\\') || (*(TempString + 3) == CHAR_NULL)) ) { *(TempString + 1) = CHAR_NULL; - PathRemoveLastItem(Path); + if (!PathRemoveLastItem(Path)) { + // + // We had "<somedir>\.." + // + *Path = CHAR_NULL; + } if (*(TempString + 3) != CHAR_NULL) { CopyMem (Path + StrLen (Path), TempString + 4, StrSize (TempString + 4)); } -- 2.17.0.windows.1 _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

