From 1f10f4afec6ca2360c006254a58582c1614efdba Mon Sep 17 00:00:00 2001 From: Daniel Drake Date: Mon, 16 Dec 2019 13:48:56 +0800 Subject: [PATCH 1/2] isosize: move ISO size functions into a shared header Move the helper functions that parse ISO data & sector size info into a separate, shared header. These will addtionally be used by libblkid's iso9660 parser. Signed-off-by: Daniel Drake --- disk-utils/isosize.c | 51 +------------------------------------ include/Makemodule.am | 1 + include/iso9660.h | 58 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+), 50 deletions(-) create mode 100644 include/iso9660.h diff --git a/disk-utils/isosize.c b/disk-utils/isosize.c index 3c8d40f3c..929966356 100644 --- a/disk-utils/isosize.c +++ b/disk-utils/isosize.c @@ -29,6 +29,7 @@ #include "c.h" #include "strutils.h" #include "closestream.h" +#include "iso9660.h" #define ISOSIZE_EXIT_ALLFAILED 32 #define ISOSIZE_EXIT_SOMEOK 64 @@ -42,56 +43,6 @@ static int is_iso(int fd) return memcmp(&label, &"\1CD001\1", 8); } -static int isonum_721(unsigned char *p) -{ - return ((p[0] & 0xff) - | ((p[1] & 0xff) << 8)); -} - -static int isonum_722(unsigned char *p) -{ - return ((p[1] & 0xff) - | ((p[0] & 0xff) << 8)); -} - -static int isonum_723(unsigned char *p, int xflag) -{ - int le = isonum_721(p); - int be = isonum_722(p + 2); - - if (xflag && le != be) - /* translation is useless */ - warnx("723error: le=%d be=%d", le, be); - return (le); -} - -static int isonum_731(unsigned char *p) -{ - return ((p[0] & 0xff) - | ((p[1] & 0xff) << 8) - | ((p[2] & 0xff) << 16) - | ((p[3] & 0xff) << 24)); -} - -static int isonum_732(unsigned char *p) -{ - return ((p[3] & 0xff) - | ((p[2] & 0xff) << 8) - | ((p[1] & 0xff) << 16) - | ((p[0] & 0xff) << 24)); -} - -static int isonum_733(unsigned char *p, int xflag) -{ - int le = isonum_731(p); - int be = isonum_732(p + 4); - - if (xflag && le != be) - /* translation is useless */ - warnx("733error: le=%d be=%d", le, be); - return (le); -} - static int isosize(int argc, char *filenamep, int xflag, long divisor) { int fd, nsecs, ssize, rc = -1; diff --git a/include/Makemodule.am b/include/Makemodule.am index 92d1c3058..c55c262c9 100644 --- a/include/Makemodule.am +++ b/include/Makemodule.am @@ -22,6 +22,7 @@ dist_noinst_HEADERS += \ include/fileutils.h \ include/idcache.h \ include/ismounted.h \ + include/iso9660.h \ include/pwdutils.h \ include/linux_version.h \ include/list.h \ diff --git a/include/iso9660.h b/include/iso9660.h new file mode 100644 index 000000000..73decd998 --- /dev/null +++ b/include/iso9660.h @@ -0,0 +1,58 @@ +#ifndef UTIL_LINUX_ISO_H +#define UTIL_LINUX_ISO_H + +#include + +#include "c.h" + +static inline int isonum_721(unsigned char *p) +{ + return ((p[0] & 0xff) + | ((p[1] & 0xff) << 8)); +} + +static inline int isonum_722(unsigned char *p) +{ + return ((p[1] & 0xff) + | ((p[0] & 0xff) << 8)); +} + +static inline int isonum_723(unsigned char *p, bool check_match) +{ + int le = isonum_721(p); + int be = isonum_722(p + 2); + + if (check_match && le != be) + /* translation is useless */ + warnx("723error: le=%d be=%d", le, be); + return (le); +} + +static inline int isonum_731(unsigned char *p) +{ + return ((p[0] & 0xff) + | ((p[1] & 0xff) << 8) + | ((p[2] & 0xff) << 16) + | ((p[3] & 0xff) << 24)); +} + +static inline int isonum_732(unsigned char *p) +{ + return ((p[3] & 0xff) + | ((p[2] & 0xff) << 8) + | ((p[1] & 0xff) << 16) + | ((p[0] & 0xff) << 24)); +} + +static inline int isonum_733(unsigned char *p, bool check_match) +{ + int le = isonum_731(p); + int be = isonum_732(p + 4); + + if (check_match && le != be) + /* translation is useless */ + warnx("733error: le=%d be=%d", le, be); + return(le); +} + +#endif From fc84bc0a463480ffb17a39b5375463b7f07d14ce Mon Sep 17 00:00:00 2001 From: Daniel Drake Date: Mon, 16 Dec 2019 14:16:48 +0800 Subject: [PATCH 2/2] libblkid: improve identification of ISO9660 partition Recent changes to the iso9660 handler attempt to better handle the case where the media has both an ordinary ISO9660 filesystem, and a partition table with a partition entry pointing at the ISO9660 filesystem. Rather than assuming the presence of a partition table means that there is an ISO9660 partition, check that such a partition exists before deciding upon which device the metadata should be presented. One real world example of this is the grub-mkrescue image format; add a unit test to cover that. Secondly, even if we find an appropriate entry in the partition table, verify that we actually have a device that corresponds to the partition where we would then proceed to expose this metadata. In the case of a CD/DVD (i.e. /dev/sr0) we would not normally expect to see devices corresponding to the partitions, in that case the ISO metadata should be presented on the whole disk (/dev/sr0). Fixes: 7ef86a0891 ("libblkid: improve handling of ISO files with partition tables") Link: https://bugzilla.redhat.com/show_bug.cgi?id=1783066 Signed-off-by: Daniel Drake --- libblkid/src/superblocks/iso9660.c | 74 ++++++++++++++++++---- tests/expected/blkid/iso-partitions-grub | 10 +++ tests/ts/blkid/iso-partitions | 19 ++++++ tests/ts/blkid/iso-partitions-grub.img.xz | Bin 0 -> 51416 bytes 4 files changed, 91 insertions(+), 12 deletions(-) create mode 100644 tests/expected/blkid/iso-partitions-grub create mode 100644 tests/ts/blkid/iso-partitions-grub.img.xz diff --git a/libblkid/src/superblocks/iso9660.c b/libblkid/src/superblocks/iso9660.c index 730939f70..fd7f7cf81 100644 --- a/libblkid/src/superblocks/iso9660.c +++ b/libblkid/src/superblocks/iso9660.c @@ -19,7 +19,9 @@ #include #include +#include "iso9660.h" #include "superblocks.h" +#include "sysfs.h" struct iso9660_date { unsigned char year[4]; @@ -43,11 +45,13 @@ struct iso_volume_descriptor { unsigned char unused[8]; unsigned char space_size[8]; unsigned char escape_sequences[8]; - unsigned char unused1[222]; + unsigned char unused1[32]; + unsigned char logical_block_size[4]; + unsigned char unused2[186]; unsigned char publisher_id[128]; - unsigned char unused2[128]; + unsigned char unused3[128]; unsigned char application_id[128]; - unsigned char unused3[111]; + unsigned char unused4[111]; struct iso9660_date created; struct iso9660_date modified; } __attribute__((packed)); @@ -169,15 +173,22 @@ static int is_str_empty(const unsigned char *str, size_t len) /* * The ISO format specifically avoids the first 32kb to allow for a * partition table to be added, if desired. - * When an ISO contains a partition table, the usual thing to do is to - * have a partition that points at the iso filesystem. In such case, + * When an ISO contains a partition table, it is common to have a partition + * that points at the iso mani filesystem. In such case, * we want to only probe the iso metadata for the corresponding partition * device, avoiding returning the metadata for the parent block device. */ -static bool isofs_belongs_to_device(blkid_probe pr) +static bool isofs_belongs_to_device(blkid_probe pr, struct iso_volume_descriptor *iso) { - dev_t devno; + dev_t devno, disk_devno, isopart_devno; blkid_partlist ls; + blkid_loff_t pr_offset; + int isopart_partno = -1; + int nparts, i; + int num_sectors, sector_size; + long iso_size; + blkid_partition par; + struct path_cxt *pc; /* Get device number, but if that fails, assume we aren't dealing * with partitions, and continue probing. */ @@ -191,10 +202,49 @@ static bool isofs_belongs_to_device(blkid_probe pr) if (!ls) return true; - /* Check that the device we're working with corresponds to an - * entry in the partition table. If so, this is the correct - * device to return the iso metadata on. */ - return blkid_partlist_devno_to_partition(ls, devno) != NULL; + /* Calculate size of ISO9660 filesystem */ + num_sectors = isonum_733(iso->space_size, false); + sector_size = isonum_723(iso->logical_block_size, false); + iso_size = ((long)num_sectors * (long)sector_size) >> 9; + + /* Look for a partition that matches the ISO9660 filesystem start sector + * and size. */ + pr_offset = blkid_probe_get_offset(pr); + nparts = blkid_partlist_numof_partitions(ls); + for (i = 0; i < nparts; i++) { + par = blkid_partlist_get_partition(ls, i); + if (blkid_partition_get_start(par) == pr_offset && + blkid_partition_get_size(par) == iso_size) { + isopart_partno = blkid_partition_get_partno(par); + break; + } + } + + /* If we didn't find a matching partition, consider the current + * device as an appropriate owner of the ISO9660 filesystem. */ + if (isopart_partno == -1) + return true; + + /* A partition matching the ISO9660 filesystem was found. Look for + * a devno that corresponds to this partition. */ + disk_devno = blkid_probe_get_wholedisk_devno(pr); + pc = ul_new_sysfs_path(disk_devno, NULL, NULL); + if (!pc) + return true; + + isopart_devno = sysfs_blkdev_partno_to_devno(pc, isopart_partno); + ul_unref_path(pc); + + /* If no ISO9660 partition devno was found, consider the current device + * as an appropriate owner of the filesystem. This can happen for CD/DVDs, + * where partitions may exist in the table, but are not usually probed by + * the kernel. */ + if (!isopart_devno) + return true; + + /* We found a partition that matches the ISO9660 filesystem. Check that it + * corresponds to the device that we are probing. */ + return devno == isopart_devno; } /* iso9660 [+ Microsoft Joliet Extension] */ @@ -214,7 +264,7 @@ static int probe_iso9660(blkid_probe pr, const struct blkid_idmag *mag) /* Check if the iso metadata should be returned on a different device * instead of this one. */ - if (!isofs_belongs_to_device(pr)) + if (!isofs_belongs_to_device(pr, iso)) return 1; memcpy(label, iso->volume_id, sizeof(label)); diff --git a/tests/expected/blkid/iso-partitions-grub b/tests/expected/blkid/iso-partitions-grub new file mode 100644 index 000000000..9a403a86a --- /dev/null +++ b/tests/expected/blkid/iso-partitions-grub @@ -0,0 +1,10 @@ +ID_FS_BLOCK_SIZE=2048 +ID_FS_UUID=2019-12-16-06-07-35-00 +ID_FS_UUID_ENC=2019-12-16-06-07-35-00 +ID_FS_BOOT_SYSTEM_ID=EL TORITO SPECIFICATION +ID_FS_LABEL=ISOIMAGE +ID_FS_LABEL_ENC=ISOIMAGE +ID_FS_TYPE=iso9660 +ID_FS_USAGE=filesystem +ID_PART_TABLE_UUID=4b46ece2-6efb-4bf9-90a6-858c95e5581d +ID_PART_TABLE_TYPE=gpt diff --git a/tests/ts/blkid/iso-partitions b/tests/ts/blkid/iso-partitions index 4aaa164f7..cfa0a93ff 100755 --- a/tests/ts/blkid/iso-partitions +++ b/tests/ts/blkid/iso-partitions @@ -69,4 +69,23 @@ udevadm settle $TS_CMD_BLKID -p -o udev ${TS_DEVICE} >> $TS_OUTPUT ts_finalize_subtest +# This image (created by grub-mkrescue) has a partition table where the +# partitions do not point to the ISO9660 filesystem. +xz -dc ${TS_SELF}/iso-partitions-grub.img.xz > ${TS_DEVICE} +udevadm settle + +ts_init_subtest "grub" +$TS_CMD_PARTX -a ${TS_DEVICE} &>/dev/null +udevadm settle + +# Check that the ISO metadata is shown on the main disk device +$TS_CMD_BLKID -p -o udev ${TS_DEVICE} >> $TS_OUTPUT + +# substitute major/minor number before comparison +sed -i \ + -e 's/^\(ID_PART_ENTRY_DISK\)=.*/\1=__ts_majorminor__/' \ + $TS_OUTPUT + +ts_finalize_subtest + ts_finalize diff --git a/tests/ts/blkid/iso-partitions-grub.img.xz b/tests/ts/blkid/iso-partitions-grub.img.xz new file mode 100644 index 0000000000000000000000000000000000000000..7fe886a3fe33a789dd94a13b34dec7b65f32a523 GIT binary patch literal 51416 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 I8CW8t0OmmeF8}}l literal 0 HcmV?d00001