libblkid: udf: Fix parsing UDF revision
UDF revision is stored as decimal number in hexadecimal format. E.g. number 0x0150 is revision 1.50, number 0x0201 is revision 2.01. Apparently all UDF test images have number which has same representation in decimal and hexadecimal format, so problem was not detected. This patch adds new test image with UDF revision 1.50. Internally number is stored as 0x0150. In decimal format it is (incorrectly) 1.80, but in hexadecimal correct 1.50. $ dd if=/dev/zero of=udf-hdd-mkudffs-1.3-8.img bs=1M count=10 $ mkudffs -r 0x150 -b 512 udf-hdd-mkudffs-1.3-8.img Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
This commit is contained in:
parent
07306a0303
commit
3999e62a72
|
@ -450,7 +450,9 @@ real_blksz:
|
|||
}
|
||||
|
||||
if (udf_rev)
|
||||
blkid_probe_sprintf_version(pr, "%d.%02d", (int)(udf_rev >> 8), (int)(udf_rev & 0xFF));
|
||||
/* UDF revision is stored as decimal number in hexadecimal format.
|
||||
* E.g. number 0x0150 is revision 1.50, number 0x0201 is revision 2.01. */
|
||||
blkid_probe_sprintf_version(pr, "%x.%02x", (unsigned int)(udf_rev >> 8), (unsigned int)(udf_rev & 0xFF));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
ID_FS_LABEL=LinuxUDF
|
||||
ID_FS_LABEL_ENC=LinuxUDF
|
||||
ID_FS_LOGICAL_VOLUME_ID=LinuxUDF
|
||||
ID_FS_TYPE=udf
|
||||
ID_FS_USAGE=filesystem
|
||||
ID_FS_UUID=5a11940936fe76a8
|
||||
ID_FS_UUID_ENC=5a11940936fe76a8
|
||||
ID_FS_VERSION=1.50
|
||||
ID_FS_VOLUME_ID=LinuxUDF
|
||||
ID_FS_VOLUME_SET_ID=5a11940936fe76a8LinuxUDF
|
Binary file not shown.
Loading…
Reference in New Issue