summaryrefslogtreecommitdiff
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
parent87c04781d5a7d13ba3cae87daedd52fe71280f3f (diff)
downloadedk2-3643e8e70d3053476aeecd01b3053918f7c74b61.zip
edk2-3643e8e70d3053476aeecd01b3053918f7c74b61.tar.gz
edk2-3643e8e70d3053476aeecd01b3053918f7c74b61.tar.bz2
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>
-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 feef184..6cff2df 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 {