summaryrefslogtreecommitdiffstats
path: root/Nt32Pkg
diff options
context:
space:
mode:
authorDong, Eric <eric.dong@intel.com>2016-10-10 16:36:18 +0800
committerRuiyu Ni <ruiyu.ni@intel.com>2016-10-11 10:17:25 +0800
commit3643e8e70d3053476aeecd01b3053918f7c74b61 (patch)
treeb78edf117fbf7cd4c6560f5b03d97558c35d2839 /Nt32Pkg
parent87c04781d5a7d13ba3cae87daedd52fe71280f3f (diff)
downloadedk2-3643e8e70d3053476aeecd01b3053918f7c74b61.tar.gz
edk2-3643e8e70d3053476aeecd01b3053918f7c74b61.tar.bz2
edk2-3643e8e70d3053476aeecd01b3053918f7c74b61.zip
Nt32Pkg WinNtSimpleFileSystemDxe: Correct file length.
In GetInfo interface, current code copy real file name buffer with full path file length. It should use real file name length. This patch fix this error. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Eric Dong <eric.dong@intel.com> Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
Diffstat (limited to 'Nt32Pkg')
-rw-r--r--Nt32Pkg/WinNtSimpleFileSystemDxe/WinNtSimpleFileSystem.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/Nt32Pkg/WinNtSimpleFileSystemDxe/WinNtSimpleFileSystem.c b/Nt32Pkg/WinNtSimpleFileSystemDxe/WinNtSimpleFileSystem.c
index feef184edb..6cff2df053 100644
--- a/Nt32Pkg/WinNtSimpleFileSystemDxe/WinNtSimpleFileSystem.c
+++ b/Nt32Pkg/WinNtSimpleFileSystemDxe/WinNtSimpleFileSystem.c
@@ -1,6 +1,6 @@
/**@file
-Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@@ -1987,8 +1987,19 @@ Returns:
CHAR16 *TempPointer;
Size = SIZE_OF_EFI_FILE_INFO;
- NameSize = StrSize (PrivateFile->FileName);
- ResultSize = Size + NameSize;
+
+ RealFileName = PrivateFile->FileName;
+ TempPointer = RealFileName;
+ while (*TempPointer) {
+ if (*TempPointer == '\\') {
+ RealFileName = TempPointer + 1;
+ }
+
+ TempPointer++;
+ }
+ NameSize = StrSize (RealFileName);
+
+ ResultSize = Size + NameSize;
Status = EFI_BUFFER_TOO_SMALL;
if (*BufferSize >= ResultSize) {
@@ -2056,17 +2067,6 @@ Returns:
Info->Attribute |= EFI_FILE_DIRECTORY;
}
- RealFileName = PrivateFile->FileName;
- TempPointer = RealFileName;
-
- while (*TempPointer) {
- if (*TempPointer == '\\') {
- RealFileName = TempPointer + 1;
- }
-
- TempPointer++;
- }
-
if (PrivateFile->IsRootDirectory) {
*((CHAR8 *) Buffer + Size) = 0;
} else {