public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
To: Laszlo Ersek <lersek@redhat.com>
Cc: Paulo Alcantara <pcacjr@zytor.com>,
	"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>,
	 Ruiyu Ni <ruiyu.ni@intel.com>, Eric Dong <eric.dong@intel.com>,
	 "Wu, Hao A" <hao.a.wu@intel.com>,
	Jordan Justen <jordan.l.justen@intel.com>,
	 Andrew Fish <afish@apple.com>, Liming Gao <liming.gao@intel.com>,
	 Michael D Kinney <michael.d.kinney@intel.com>,
	Star Zeng <star.zeng@intel.com>
Subject: Re: [PATCH v6 0/6] read-only UDF file system support
Date: Fri, 8 Sep 2017 20:21:28 +0100	[thread overview]
Message-ID: <CAKv+Gu9xfEdY+W-nZz5X5VVgX5QzeCBAVijD7qaar8g0EAsv=w@mail.gmail.com> (raw)
In-Reply-To: <77914c33-7637-e759-02d0-f94e448157ff@redhat.com>

On 8 September 2017 at 19:47, Laszlo Ersek <lersek@redhat.com> wrote:
> On 09/08/17 14:41, Paulo Alcantara wrote:
>> Hi,
>>
>> This series introduces read-only UDF file system support in EDK2. As
>> Laszlo (or Red Hat) seemed to be interested in such support, I'm posting
>> it again after ~3 years.
>>
>> The idea is not replacing the default FAT file system, nor breaking any
>> existing file system support, but extending EDK2 with a new file system
>> that might be useful for some people who are looking for specific file
>> system features that current FAT doesn't support.
>>
>> Originally the driver was written to support UDF file systems as
>> specified by OSTA Universal Disk Format Specification 2.60. However,
>> some Windows 10 Enterprise ISO (UDF bridge) images that I tested
>> supported a revision of 1.02 thus I had to rework the driver a little
>> bit to support such revision as well.
>>
>> v2:
>>  - Rework to _partially_ support UDF revisions <2.60.
>>  - Use existing CDROM_VOLUME_DESCRIPTOR structure defined in Eltorito.h
>>    instead of creating another one (UDF_VOLUME_DESCRIPTOR).
>>  - Fixed UdfDxe to correctly follow UEFI driver model.
>>  - Use HARDDRIVE_DEVICE_PATH instead of a vendor-defined one.
>>  - Detect UDF file systems only in PartitionDxe, and let UdfDxe driver
>>    check for specific UDF device path to decide whether or not install
>>    SimpleFs protocol.
>>  - Place MdePkg changes in a separate patch.
>> v3:
>>  - Install UDF partition child handles with a Vendor-Defined Media
>>    Device Path.
>>  - Changed UdfDxe to check for Vendor-Defined Media Device Paths with a
>>    specific UDF file system GUID when determining to whether or not
>>    start the driver.
>>  - Removed leading TAB chars in some source files identified by
>>    PatchCheck.py tool.
>> v4:
>>  - Added missing R-b's.
>> v5:
>>  - Fixed OVMF IA32 build.
>>  - Fixed a typo in UdfDriveBindingStop() ("This" -> "SimpleFs") which
>>    broke retrieval of private fs data from SimpleFs protocol --
>>    identified by 'reconnect -r' command in UEFI shell.
>> v6:
>>  - Fixed a bug in UdfRead() that'd pontentially break in ARM or IA32
>>    by allowing caller to read more than 4GiB of data
>>    (i.e. BufferSize pointer is dereferenced as an UINT64 * and it's
>>     followed by 4 bytes that are nonzero).
>>
>> Repo:   https://github.com/pcacjr/edk2.git
>> Branch: udf-fs-v6
>>
>> Cc: Laszlo Ersek <lersek@redhat.com>
>> Cc: Jordan Justen <jordan.l.justen@intel.com>
>> Cc: Andrew Fish <afish@apple.com>
>> Cc: Michael D Kinney <michael.d.kinney@intel.com>
>> Cc: Liming Gao <liming.gao@intel.com>
>> Cc: Star Zeng <star.zeng@intel.com>
>> Cc: Eric Dong <eric.dong@intel.com>
>> Cc: Mark Doran <mark.doran@intel.com>
>> Cc: Ruiyu Ni <ruiyu.ni@intel.com>
>> Cc: hao.a.wu@intel.com
>> Contributed-under: TianoCore Contribution Agreement 1.1
>> Signed-off-by: Paulo Alcantara <pcacjr@zytor.com>
>> ---
>>
>> Paulo Alcantara (6):
>>   MdePkg: Add UDF volume structure definitions
>>   MdeModulePkg/PartitionDxe: Add UDF file system support
>>   MdeModulePkg: Initial UDF/ECMA-167 file system support
>>   OvmfPkg: Enable UDF file system support
>>   ArmVirtPkg: Enable UDF file system support
>>   Nt32Pkg: Enable UDF file system support
>>
>>  ArmVirtPkg/ArmVirtQemu.dsc                         |    3 +-
>>  ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc               |    3 +-
>>  ArmVirtPkg/ArmVirtQemuKernel.dsc                   |    3 +-
>>  ArmVirtPkg/ArmVirtXen.dsc                          |    3 +-
>>  ArmVirtPkg/ArmVirtXen.fdf                          |    1 +
>>  .../Universal/Disk/PartitionDxe/Partition.c        |    9 +-
>>  .../Universal/Disk/PartitionDxe/Partition.h        |   32 +-
>>  .../Universal/Disk/PartitionDxe/PartitionDxe.inf   |    3 +-
>>  MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c     |  318 +++
>>  MdeModulePkg/Universal/Disk/UdfDxe/ComponentName.c |  185 ++
>>  MdeModulePkg/Universal/Disk/UdfDxe/File.c          |  908 ++++++++
>>  MdeModulePkg/Universal/Disk/UdfDxe/FileName.c      |  195 ++
>>  .../Universal/Disk/UdfDxe/FileSystemOperations.c   | 2447 ++++++++++++++++++++
>>  MdeModulePkg/Universal/Disk/UdfDxe/Udf.c           |  344 +++
>>  MdeModulePkg/Universal/Disk/UdfDxe/Udf.h           | 1244 ++++++++++
>>  MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf      |   66 +
>>  MdePkg/Include/IndustryStandard/Udf.h              |   60 +
>>  Nt32Pkg/Nt32Pkg.dsc                                |    1 +
>>  Nt32Pkg/Nt32Pkg.fdf                                |    1 +
>>  OvmfPkg/OvmfPkgIa32.dsc                            |    1 +
>>  OvmfPkg/OvmfPkgIa32.fdf                            |    1 +
>>  OvmfPkg/OvmfPkgIa32X64.dsc                         |    1 +
>>  OvmfPkg/OvmfPkgIa32X64.fdf                         |    1 +
>>  OvmfPkg/OvmfPkgX64.dsc                             |    1 +
>>  OvmfPkg/OvmfPkgX64.fdf                             |    1 +
>>  25 files changed, 5821 insertions(+), 11 deletions(-)
>>  create mode 100644 MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c
>>  create mode 100644 MdeModulePkg/Universal/Disk/UdfDxe/ComponentName.c
>>  create mode 100644 MdeModulePkg/Universal/Disk/UdfDxe/File.c
>>  create mode 100644 MdeModulePkg/Universal/Disk/UdfDxe/FileName.c
>>  create mode 100644 MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c
>>  create mode 100644 MdeModulePkg/Universal/Disk/UdfDxe/Udf.c
>>  create mode 100644 MdeModulePkg/Universal/Disk/UdfDxe/Udf.h
>>  create mode 100644 MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf
>>  create mode 100644 MdePkg/Include/IndustryStandard/Udf.h
>>
>
> Pushed as commit range 7aee391fa3d0..b696c64d4fc3.
>

This code breaks the Clang build:

<https://ci.linaro.org/job/leg-virt-tianocore-edk2-upstream/ws/edk2/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c>:937:11:
error: variable 'Status' is used uninitialized whenever 'if' condition
is false [-Werror,-Wsometimes-uninitialized]
      if (ReadFileInfo->FileData == NULL) {
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<https://ci.linaro.org/job/leg-virt-tianocore-edk2-upstream/ws/edk2/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c>:1148:10:
note: uninitialized use occurs here
  return Status;
         ^~~~~~
<https://ci.linaro.org/job/leg-virt-tianocore-edk2-upstream/ws/edk2/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c>:937:7:
note: remove the 'if' if its condition is always true
      if (ReadFileInfo->FileData == NULL) {
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<https://ci.linaro.org/job/leg-virt-tianocore-edk2-upstream/ws/edk2/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c>:932:16:
error: variable 'Status' is used uninitialized whenever 'if' condition
is false [-Werror,-Wsometimes-uninitialized]
    } else if (ReadFileInfo->Flags == READ_FILE_ALLOCATE_AND_READ) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<https://ci.linaro.org/job/leg-virt-tianocore-edk2-upstream/ws/edk2/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c>:1148:10:
note: uninitialized use occurs here
  return Status;
         ^~~~~~
<https://ci.linaro.org/job/leg-virt-tianocore-edk2-upstream/ws/edk2/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c>:932:12:
note: remove the 'if' if its condition is always true
    } else if (ReadFileInfo->Flags == READ_FILE_ALLOCATE_AND_READ) {
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<https://ci.linaro.org/job/leg-virt-tianocore-edk2-upstream/ws/edk2/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c>:930:9:
error: variable 'Status' is used uninitialized whenever 'if' condition
is true [-Werror,-Wsometimes-uninitialized]
    if (ReadFileInfo->Flags == READ_FILE_GET_FILESIZE) {
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<https://ci.linaro.org/job/leg-virt-tianocore-edk2-upstream/ws/edk2/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c>:1148:10:
note: uninitialized use occurs here
  return Status;
         ^~~~~~
<https://ci.linaro.org/job/leg-virt-tianocore-edk2-upstream/ws/edk2/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c>:930:5:
note: remove the 'if' if its condition is always false
    if (ReadFileInfo->Flags == READ_FILE_GET_FILESIZE) {
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<https://ci.linaro.org/job/leg-virt-tianocore-edk2-upstream/ws/edk2/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c>:869:33:
note: initialize the variable 'Status' to silence this warning
  EFI_STATUS              Status;
                                ^
                                 = 0
3 errors generated.

Thanks,
Ard.


  reply	other threads:[~2017-09-08 19:18 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-08 12:41 [PATCH v6 0/6] read-only UDF file system support Paulo Alcantara
2017-09-08 12:41 ` [PATCH v6 1/6] MdePkg: Add UDF volume structure definitions Paulo Alcantara
2017-09-08 12:41 ` [PATCH v6 2/6] MdeModulePkg/PartitionDxe: Add UDF file system support Paulo Alcantara
2017-09-08 12:41 ` [PATCH v6 3/6] MdeModulePkg: Initial UDF/ECMA-167 " Paulo Alcantara
2017-09-08 12:41 ` [PATCH v6 4/6] OvmfPkg: Enable UDF " Paulo Alcantara
2017-09-08 12:41 ` [PATCH v6 5/6] ArmVirtPkg: " Paulo Alcantara
2017-09-08 12:41 ` [PATCH v6 6/6] Nt32Pkg: " Paulo Alcantara
2017-09-08 13:25 ` [PATCH v6 0/6] read-only " Laszlo Ersek
2017-09-08 13:43   ` Paulo Alcantara
2017-09-08 15:05   ` Ni, Ruiyu
2017-09-08 18:47 ` Laszlo Ersek
2017-09-08 19:21   ` Ard Biesheuvel [this message]
2017-09-08 19:40     ` Laszlo Ersek
2017-09-08 22:17       ` Ard Biesheuvel
2017-09-08 23:30         ` Paulo Alcantara
2017-09-09 21:52           ` Laszlo Ersek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAKv+Gu9xfEdY+W-nZz5X5VVgX5QzeCBAVijD7qaar8g0EAsv=w@mail.gmail.com' \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox