From 4c837d4ffe43c5378da683b8fc63e17eb3afcf46 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Pali=20Roh=C3=A1r?= Date: Fri, 25 May 2018 17:52:31 +0200 Subject: [PATCH] libblkid: udf: Fix reporting UDF 2.60 revision MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit According to the UDF 2.60 specification, the Minimum UDF Read Revision value shall be at most #0250 for all media with a UDF 2.60 file system. So in this case use Minimum UDF Write Revision as ID_FS_VERSION to distinguish between UDF 2.50 and UDF 2.60 discs. This commit also adds a testing Blu-Ray Recordable image with UDF revision 2.60 created by Nero which really sets Minimum UDF Read Revision to 2.50. Signed-off-by: Pali Rohár --- libblkid/src/superblocks/udf.c | 10 ++++++++++ tests/expected/blkid/low-probe-udf-bdr-2.60-nero | 10 ++++++++++ .../ts/blkid/images-fs/udf-bdr-2.60-nero.img.xz | Bin 0 -> 1956 bytes 3 files changed, 20 insertions(+) create mode 100644 tests/expected/blkid/low-probe-udf-bdr-2.60-nero create mode 100644 tests/ts/blkid/images-fs/udf-bdr-2.60-nero.img.xz diff --git a/libblkid/src/superblocks/udf.c b/libblkid/src/superblocks/udf.c index bd8e0a5c25..97e79dab0e 100644 --- a/libblkid/src/superblocks/udf.c +++ b/libblkid/src/superblocks/udf.c @@ -446,6 +446,16 @@ real_blksz: lvidiu_udf_rev = le16_to_cpu(lvidiu->min_udf_read_rev); if (lvidiu_udf_rev) udf_rev = lvidiu_udf_rev; + /* UDF-2.60: 2. Basic Restrictions & Requirements: + * The Minimum UDF Read Revision value shall be at most #0250 + * for all media with a UDF 2.60 file system. + * So in this case use Minimum UDF Write Revision as ID_FS_VERSION + * to distinguish between UDF 2.50 and UDF 2.60 discs. */ + if (lvidiu_udf_rev == 0x250) { + lvidiu_udf_rev = le16_to_cpu(lvidiu->min_udf_write_rev); + if (lvidiu_udf_rev > 0x250) + udf_rev = lvidiu_udf_rev; + } } } diff --git a/tests/expected/blkid/low-probe-udf-bdr-2.60-nero b/tests/expected/blkid/low-probe-udf-bdr-2.60-nero new file mode 100644 index 0000000000..c0b8867b53 --- /dev/null +++ b/tests/expected/blkid/low-probe-udf-bdr-2.60-nero @@ -0,0 +1,10 @@ +ID_FS_LABEL=Label +ID_FS_LABEL_ENC=Label +ID_FS_LOGICAL_VOLUME_ID=Label +ID_FS_TYPE=udf +ID_FS_USAGE=filesystem +ID_FS_UUID=3b4a858dc4b57a72 +ID_FS_UUID_ENC=3b4a858dc4b57a72 +ID_FS_VERSION=2.60 +ID_FS_VOLUME_ID=Label +ID_FS_VOLUME_SET_ID=3B4A858DC4B57A72 diff --git a/tests/ts/blkid/images-fs/udf-bdr-2.60-nero.img.xz b/tests/ts/blkid/images-fs/udf-bdr-2.60-nero.img.xz new file mode 100644 index 0000000000000000000000000000000000000000..9fb9a4fec5755bc410d7e1a9869283a9fff416b4 GIT binary patch literal 1956 zc-jG^2V404H+ooF000E$*0e?f03iV!0000G&sfa!|NjSJT>t=Y{r~@?xBo{zNELE9 zVNtk}DCVPv2l?*g9)i;^#X39zOR;{*ii%AyqYc@ArsIqw5mVq<7{zsp;&xI*JwY(L zweuaz*Ox&XX`mJBn3c#WHP<<}od2ouwt@k>F>+TSRo}Y7CRDrL`m1r$>C=?94IYrQ z?I9B1U&FAQyyz>nHALIblPP%Q?}lkepnKq>uhtS0tvQ*C(6}j8oQpP7A+(IqaPP*$ zO%Z6X%9N<%t5tXTabZY}FFdSaO}947d0Vyc&8JL?&c}w01)!3^H_fLIEyfY0e!D`9 zNX0uNZ{3pQORd^YDnMqM26{Pc$l6WKEYcbt#$~B5M;~iL0Oq5Z&_RmUlG;ALhWz7y zAYDEhwjW@Uo6`iDwETK4u0d z)gQ6472m{0Rd~vC&ZF9KQd!cBQB&Ot(W1at$TZ1tXCnI2B;Rhn$7F1rN*vv81GQZS z*(M2AMrjy8?*%ujB3^m;j(6k~m`kql!F_u-^TCL*>e#vYZ}Ei&`;reLfiTJ0n0ik; zc7xp&NwmlhZ0#^)*U9m~!U1KUeH59BRUm>cm{sQw*UF__0M*w>(21``kEv;4PaIHY z(`J&{`k2AmyZlr*KWbJ1sGu9=&(#`=)IkXJxB|icJloLRqq2nkK3hXK^lMPez1irB zt(PtTF6){d$M(&gjM(WOF3Y&*7BIV9B(2PnI|B*Wsgq7c(Y@H+hxf?6&%IT0DPe|!L zJ;ci{2wS8cnCjf-%VZCxyyI%vrER9htkhR!_6lma931D_?D;Vt*B4i<0(Y`hn>wj6_ zWbkr#`eW?dr7RgEKtnfW@nmZ>Uj3C7nu?UF1aV2&plI#zD<{_K9K{ne)pVn$Zr6d_ zl|^fkUGtKk@@qBQBVTKgyGsuwO8uRpKJ4e;GROxNnCawLjA>dP;Gf8@!@0H=${w<;PNXU3BIYZ27b}3k(+^N~TVd#`$L< zH}r51Gc?cFICv(^wI^EuzXGO0b`9)}CmWA}iiZuSSRq3nm!#bZJ5EUR>@V$pT)LD; z!io1hOV4kl-rJ1ib40pfVi(S^@OBDFS4TQ?6T!P6RsLs&vlMdso#6wQ!s;5=PFxTv zYb`xYI>BAgh;A*ApW?U7>;7I|kRT0Clg`{Eq=+DtSohXxMEv1~w2BYao1(!Q#%6Tm zc-0Fw)GnI6hgZ#P(uO=uHiV!HVcAl`;((e=Y9>I;vpv!KI@6h&T{&^C_CSToteprU z$;-@3NdO${p>!NPT&3a5tV+ev!(~SagDQYB)W-U%C#lBy;t=u7uc$1PqD-RZZM<}s zuy@Y9sdGhaAZ3|HWfh*$UR(#vGJ>cx@XT8-I;)M)ilUw@8W4U-^`{KKfzLfe z&ds$MT11(bo6`d(3tku81|v%2!-iuK>5fR%>Ni=Ke$F6nsR-eu9n6$qBwxhJiXI)b zr4OR(2L3LWUl7*l+|E6A@ic#pefLRtvi5<%>x~UDStk9T8DfZS-E6L#aTka9X7+6R z1SM6Ck-C-jYDp#Wi*edqr`~s4tx%1Yvcausp~PQG{O!9a81OMc6Dd zG(ulkl5|{uPQB0e8k#AfzRi#Bt% z3h@(N1(b)3ej+}2U6rSAj3ZVItg=6joB&`Yn>^60l9Z()cG(i2jG0J{W(AS-tx!Vo z(+IzM|2I!K$)?r>EsAkoSGad!ews~)oJc+l0yo`1$P+3>n1^ND_mhc{1KB4$G67uO zttX-NS5Su@GcVr5Nfr7Zp}m}(oZBGG&(kUU1r~U(_}W2-m7}#~s8w`PxE&d5rc!Zj qMyUV*0002C&J5k~w!zo{0sRhufKULGkiKKF#Ao{g000001X)_R;mCmi literal 0 Hc-jL100001 -- 2.47.2