Liming and Mike,

I don't feel there is any logical issue with this proposed fix.

However, there is some shell code that fails when the fix is in place.
I think that shell code probably should be changed; I'll see if I can
make an acceptable change there first.

Please disregard this patch; I'll likely resubmit some version of it
later on.

Regards,
Jim

-----Original Message-----
From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Dailey, 
Jim
Sent: Friday, November 30, 2018 9:43 AM
To: liming....@intel.com; michael.d.kin...@intel.com
Cc: edk2-devel@lists.01.org
Subject: Re: [edk2] [PATCH] MdePkg-BaseLib: PathCleanUpDirectories fix


[EXTERNAL EMAIL] 

Oops!  I think this change may have an issue.

Hold off and I'll let you know if that's the case.

--Jim

-----Original Message-----
From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Dailey, 
Jim
Sent: Friday, November 30, 2018 9:12 AM
To: liming....@intel.com; michael.d.kin...@intel.com
Cc: edk2-devel@lists.01.org
Subject: [edk2] [PATCH] MdePkg-BaseLib: PathCleanUpDirectories fix


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 <jim_dai...@dell.com>
---
 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
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to