Re: [edk2] [PATCH 1/2] ArmPkg: Bds: check path first for supporting fs

2016-02-26 Thread Haojian Zhuang



在 01/26/2016 09:40 AM, Haojian Zhuang 写道:



On 01/15/2016 10:29 AM, Haojian Zhuang wrote:

BdsFileSystemSupport() checks Handle first before validating device
path of file. There's the potential issue at here.

BdsConnectAndUpdateDevicePath() will skip to locate handle if it's
file or memory mapped. Then BdsFileSystemSupport() tries to use
the invalid Handle when it's not file path in file system.

Now check the device path first. If it's not file path in file system,
return directly.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Haojian Zhuang 
---
  ArmPkg/Library/BdsLib/BdsFilePath.c | 8 +---
  1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/ArmPkg/Library/BdsLib/BdsFilePath.c
b/ArmPkg/Library/BdsLib/BdsFilePath.c
index aefeaed..42c6dc4 100644
--- a/ArmPkg/Library/BdsLib/BdsFilePath.c
+++ b/ArmPkg/Library/BdsLib/BdsFilePath.c
@@ -460,9 +460,11 @@ BdsFileSystemSupport (
EFI_STATUS  Status;
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *FsProtocol;

-  Status = gBS->HandleProtocol (Handle,
&gEfiSimpleFileSystemProtocolGuid, (VOID **)&FsProtocol);
-
-  return (!EFI_ERROR (Status) && IS_DEVICE_PATH_NODE
(RemainingDevicePath, MEDIA_DEVICE_PATH, MEDIA_FILEPATH_DP));
+  if (IS_DEVICE_PATH_NODE (RemainingDevicePath, MEDIA_DEVICE_PATH,
MEDIA_FILEPATH_DP)) {
+Status = gBS->HandleProtocol (Handle,
&gEfiSimpleFileSystemProtocolGuid, (VOID **)&FsProtocol);
+return (!EFI_ERROR (Status));
+  }
+  return FALSE;
  }

  EFI_STATUS



Hi Leif & Ard,

How about this patch series? Any comments?


Hi Leif & Ard,

Any comments on this patch series?

Best Regards
Haojian
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] [PATCH 1/2] ArmPkg: Bds: check path first for supporting fs

2016-01-25 Thread Haojian Zhuang



On 01/15/2016 10:29 AM, Haojian Zhuang wrote:

BdsFileSystemSupport() checks Handle first before validating device
path of file. There's the potential issue at here.

BdsConnectAndUpdateDevicePath() will skip to locate handle if it's
file or memory mapped. Then BdsFileSystemSupport() tries to use
the invalid Handle when it's not file path in file system.

Now check the device path first. If it's not file path in file system,
return directly.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Haojian Zhuang 
---
  ArmPkg/Library/BdsLib/BdsFilePath.c | 8 +---
  1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/ArmPkg/Library/BdsLib/BdsFilePath.c 
b/ArmPkg/Library/BdsLib/BdsFilePath.c
index aefeaed..42c6dc4 100644
--- a/ArmPkg/Library/BdsLib/BdsFilePath.c
+++ b/ArmPkg/Library/BdsLib/BdsFilePath.c
@@ -460,9 +460,11 @@ BdsFileSystemSupport (
EFI_STATUS  Status;
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *FsProtocol;

-  Status = gBS->HandleProtocol (Handle, &gEfiSimpleFileSystemProtocolGuid, (VOID 
**)&FsProtocol);
-
-  return (!EFI_ERROR (Status) && IS_DEVICE_PATH_NODE (RemainingDevicePath, 
MEDIA_DEVICE_PATH, MEDIA_FILEPATH_DP));
+  if (IS_DEVICE_PATH_NODE (RemainingDevicePath, MEDIA_DEVICE_PATH, 
MEDIA_FILEPATH_DP)) {
+Status = gBS->HandleProtocol (Handle, &gEfiSimpleFileSystemProtocolGuid, (VOID 
**)&FsProtocol);
+return (!EFI_ERROR (Status));
+  }
+  return FALSE;
  }

  EFI_STATUS



Hi Leif & Ard,

How about this patch series? Any comments?

Best Regards
Haojian
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel