Pushed at https://github.com/tianocore/edk2/compare/e921f58d4458...baaa3cee1eaf.
Thanks all. :)

Star
-----Original Message-----
From: Ni, Ruiyu 
Sent: Monday, September 25, 2017 8:31 AM
To: Paulo Alcantara <[email protected]>; [email protected]
Cc: Kinney, Michael D <[email protected]>; Gao, Liming 
<[email protected]>; Laszlo Ersek <[email protected]>; Zeng, Star 
<[email protected]>; Yao, Jiewen <[email protected]>
Subject: RE: [PATCH v4 0/2] UDF partition driver fix

Reviewed-by: Ruiyu Ni <[email protected]>

-----Original Message-----
From: Paulo Alcantara [mailto:[email protected]] 
Sent: Saturday, September 23, 2017 2:12 AM
To: [email protected]
Cc: Paulo Alcantara <[email protected]>; Kinney, Michael D 
<[email protected]>; Gao, Liming <[email protected]>; Laszlo Ersek 
<[email protected]>; Ni, Ruiyu <[email protected]>; Zeng, Star 
<[email protected]>; Yao, Jiewen <[email protected]>
Subject: [PATCH v4 0/2] UDF partition driver fix

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=707

Hi,

This patchset fixes a bug in Partition driver that created UDF logical 
partitions by using entire block device space and thus polluting protocol 
database with broken handles.

v1->v2:
 - Followed Laszlo's suggestions to submit a proper patchset. Thanks!
 - As I'm still waiting for Ruiyu and Star to test this fix, I took
   advantage of it and did some code cleanups :-)

v2->v3:
 - Followed Ruiyu's suggestions to improve code and add additional
   checks for ensuring a valid UDF file system and supported by current
   EDK2 UDF file system implementation. Also run Ecc.py to make sure the
   files I touched did not break EDK2 C Coding Style, as well as
   PatchCheck.py for mal-formed patches.

v3->v4:
 - Change 2/2's title as suggested by Star.
 - Remove UDF_TAG_ID() and refactor out UDF_ENTITY_ID structure as
   suggested by Ruiyu.
 - Tested build with VS2015 toolchain.

I've had a chance to test these changes with my 32GiB USB stick and formatted 
it on Windows 10 with `format` command. The UDF revisions I tested (by 
specifying it with "/R:revision") were 1.02, 1.50, 2.00,
2.01 (default) and 2.50. They all worked except the 2.50 revision which adds a 
Type 2 (Metadata) Partition and it's not supported by current
EDK2 UDF implementation -- which handles only Type 1 (Physical) Partitions. The 
UDF 2.60 revision I tested with the usual `sudo mkudffs -b 512 --media-type=hd 
/dev/sdX` command in Linux.

Remember, the *officially* supported revision is 2.60, however all revisions 
use the same volume structures as defined by ECMA 167 specification, and they 
usually differ from each other by means of new optional features, so that's why 
all those revisions worked with this implementation.

Well, at least this what I understood when looking at the specifications. 
Please correct me if I'm wrong.

Please, test building these changes in toolchains other than GCC and make sure 
they don't break the world :-)

Thanks!
Paulo

Repo:   https://github.com/pcacjr/edk2.git
Branch: udf-partition-fix-v4

Cc: Michael D Kinney <[email protected]>
Cc: Liming Gao <[email protected]>
Cc: Laszlo Ersek <[email protected]>
Cc: Ruiyu Ni <[email protected]>
Cc: Star Zeng <[email protected]>
Cc: Jiewen Yao <[email protected]>
Contributed-under: TianoCore Contribution Agreement 1.1
Reported-by: Ruiyu Ni <[email protected]>
Signed-off-by: Paulo Alcantara <[email protected]>
---

Paulo Alcantara (2):
  MdePkg: Add UDF volume structure definitions
  MdeModulePkg/UDF: Fix creation of UDF logical partition

 MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c            | 366 ++++++++++--
 MdeModulePkg/Universal/Disk/UdfDxe/File.c                 |  16 +-
 MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c | 627 
++++++++------------
 MdeModulePkg/Universal/Disk/UdfDxe/Udf.c                  |   7 -
 MdeModulePkg/Universal/Disk/UdfDxe/Udf.h                  | 158 ++---
 MdePkg/Include/IndustryStandard/Udf.h                     |  97 ++-
 6 files changed, 698 insertions(+), 573 deletions(-)

--
2.13.3.windows.1

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to