[edk2-devel] [edk2-platforms][PATCH v2 09/11] Ext4Pkg: Check that source file is directory in Ext4OpenInternal

Savva Mitrofanov posted 11 patches 3 years, 1 month ago
There is a newer version of this series
[edk2-devel] [edk2-platforms][PATCH v2 09/11] Ext4Pkg: Check that source file is directory in Ext4OpenInternal
Posted by Savva Mitrofanov 3 years, 1 month ago
This check already present in the while loop below, but absent for cases
when input file is nameless, so to handle assertion in Ext4ReadFile we
need to add it at the top of function

Cc: Marvin Häuser <mhaeuser@posteo.de>
Cc: Pedro Falcato <pedro.falcato@gmail.com>
Cc: Vitaly Cheptsov <vit9696@protonmail.com>
Fixes: e55f0527dde48a5f139c1b8f35acc4e6b59dd794
Signed-off-by: Savva Mitrofanov <savvamtr@gmail.com>
---
 Features/Ext4Pkg/Ext4Dxe/File.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/Features/Ext4Pkg/Ext4Dxe/File.c b/Features/Ext4Pkg/Ext4Dxe/File.c
index 04198a53bfc0..20a0194a5793 100644
--- a/Features/Ext4Pkg/Ext4Dxe/File.c
+++ b/Features/Ext4Pkg/Ext4Dxe/File.c
@@ -207,6 +207,11 @@ Ext4OpenInternal (
   Level     = 0;

 

   DEBUG ((DEBUG_FS, "[ext4] Ext4OpenInternal %s\n", FileName));

+

+  if (!Ext4FileIsDir (Current)) {

+    return EFI_INVALID_PARAMETER;

+  }

+

   // If the path starts with a backslash, we treat the root directory as the base directory

   if (FileName[0] == L'\\') {

     FileName++;

@@ -219,6 +224,10 @@ Ext4OpenInternal (
       return EFI_ACCESS_DENIED;

     }

 

+    if (!Ext4FileIsDir (Current)) {

+      return EFI_INVALID_PARAMETER;

+    }

+

     // Discard leading path separators

     while (FileName[0] == L'\\') {

       FileName++;

@@ -242,10 +251,6 @@ Ext4OpenInternal (
 

     DEBUG ((DEBUG_FS, "[ext4] Opening %s\n", PathSegment));

 

-    if (!Ext4FileIsDir (Current)) {

-      return EFI_INVALID_PARAMETER;

-    }

-

     if (!Ext4IsLastPathSegment (FileName)) {

       if (!Ext4DirCanLookup (Current)) {

         return EFI_ACCESS_DENIED;

-- 
2.38.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#97269): https://edk2.groups.io/g/devel/message/97269
Mute This Topic: https://groups.io/mt/95622337/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-