Reviewed-by: Star Zeng <[email protected]>
-----Original Message-----
From: Laszlo Ersek [mailto:[email protected]]
Sent: Sunday, September 10, 2017 8:13 AM
To: edk2-devel-01 <[email protected]>
Cc: Ard Biesheuvel <[email protected]>; Dong, Eric
<[email protected]>; Paulo Alcantara <[email protected]>; Ni, Ruiyu
<[email protected]>; Zeng, Star <[email protected]>
Subject: [PATCH 2/5] MdeModulePkg/UdfDxe: don't return unset Status if
INLINE_DATA req succeeds
Ard reports that clang-3.8 correctly flags the following issue in the
ReadFile() function:
If "RecordingFlags" is INLINE_DATA, then there are three paths through the code
where we mean to return success, but forget to set Status
accordingly:
(1) when "ReadFileInfo->Flags" is READ_FILE_GET_FILESIZE, or
(2) when "ReadFileInfo->Flags" is READ_FILE_ALLOCATE_AND_READ and
AllocatePool() succeeds, or
(3) when "ReadFileInfo->Flags" is READ_FILE_SEEK_AND_READ.
Set "Status" to EFI_SUCCESS when we are done processing the INLINE_DATA
request, i.e., when we reach the corresponding "break" statament under the
INLINE_DATA case label.
Cc: Ard Biesheuvel <[email protected]>
Cc: Eric Dong <[email protected]>
Cc: Paulo Alcantara <[email protected]>
Cc: Ruiyu Ni <[email protected]>
Cc: Star Zeng <[email protected]>
Reported-by: Ard Biesheuvel <[email protected]>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Laszlo Ersek <[email protected]>
---
MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c
b/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c
index a2ca65e5dfe8..0de9c71c250f 100644
--- a/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c
+++ b/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c
@@ -958,11 +958,13 @@ ReadFile (
} else {
ASSERT (FALSE);
return EFI_INVALID_PARAMETER;
}
+ Status = EFI_SUCCESS;
break;
+
case LONG_ADS_SEQUENCE:
case SHORT_ADS_SEQUENCE:
//
// This FE/EFE contains a run of Allocation Descriptors. Get data + size
// for start reading them out.
--
2.14.1.3.gb7cf6e02401b
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel