diff options
author | Qiu Shumin <shumin.qiu@intel.com> | 2015-07-01 01:46:20 +0000 |
---|---|---|
committer | shenshushi <shenshushi@Edk2> | 2015-07-01 01:46:20 +0000 |
commit | 2ce8ce9b064c0058964cb35ddc7272059fb7663c (patch) | |
tree | b95f59081f3af6174c16ff9162545df5c0124a80 | |
parent | 203beadc12dbc5665d4de1003246fc13c94763fc (diff) | |
download | edk2-2ce8ce9b064c0058964cb35ddc7272059fb7663c.tar.gz edk2-2ce8ce9b064c0058964cb35ddc7272059fb7663c.tar.bz2 edk2-2ce8ce9b064c0058964cb35ddc7272059fb7663c.zip |
ShellPkg: Refine the code logic of mv.c.
When doing the mv we should check whether source is 'above' dest on file path tree. This patch make the check logic more precise.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Qiu Shumin <shumin.qiu@intel.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Samer El-Haj-Mahmoud <elhaj@hp.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17750 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r-- | ShellPkg/Library/UefiShellLevel2CommandsLib/Mv.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/ShellPkg/Library/UefiShellLevel2CommandsLib/Mv.c b/ShellPkg/Library/UefiShellLevel2CommandsLib/Mv.c index 40ba00b493..fa67533743 100644 --- a/ShellPkg/Library/UefiShellLevel2CommandsLib/Mv.c +++ b/ShellPkg/Library/UefiShellLevel2CommandsLib/Mv.c @@ -128,9 +128,11 @@ IsValidMove( //
// If they're the same, or if source is "above" dest on file path tree
//
- if ( StringNoCaseCompare (&DestPathWalker, &SourcePath) == 0
- || StrStr(DestPathWalker, SourcePath) == DestPathWalker
- ) {
+ if ( StringNoCaseCompare (&DestPathWalker, &SourcePath) == 0 ||
+ ((StrStr(DestPathWalker, SourcePath) == DestPathWalker) &&
+ (DestPathWalker[StrLen(SourcePath)] == '\\')
+ )
+ ) {
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MV_INV_SUB), gShellLevel2HiiHandle);
FreePool(DestPathCopy);
return (FALSE);
|