From e42290c1d16de79f625a545b68ea9c39f7037847 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Aug 16 2018 12:50:08 +0000 Subject: import util-linux-2.23.2-52.el7_5.1 --- diff --git a/SOURCES/0150-libblkid-minix-Match-minix-superblock-types.patch b/SOURCES/0150-libblkid-minix-Match-minix-superblock-types.patch new file mode 100644 index 0000000..cd86e04 --- /dev/null +++ b/SOURCES/0150-libblkid-minix-Match-minix-superblock-types.patch @@ -0,0 +1,44 @@ +From 4ce5726c0ed93e7607c5076f587546c32cf83c2f Mon Sep 17 00:00:00 2001 +From: Nate Clark +Date: Wed, 4 Jan 2017 15:24:22 -0500 +Subject: [PATCH 150/152] libblkid/minix: Match minix superblock types + +All of the types in the minix super block are unsigned but in +probe_minix they were being treated as signed. This would cause some of +the extra sanity checks to pass on a non minix device. The types were +updated to match the return types of the helper functions in +disk-utils/minix_programs.h + +This can be checked by creating a swap partition with one of these UUIDs +35f1f264-2468-471a-bc85-acc9f4bc04a3 +35f1f264-6824-471a-bc85-acc9f4bc04a3 +35f1f264-2478-471a-bc85-acc9f4bc04a3 +35f1f264-7824-471a-bc85-acc9f4bc04a3 + +Prior to this change they would all be considered minix and swap by +blkid. + +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1594681 +Upstream: http://github.com/karelzak/util-linux/commit/a9975c1072c4975ec2df958188a80d89cabc6171 +Signed-off-by: Nate Clark +--- + libblkid/src/superblocks/minix.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/libblkid/src/superblocks/minix.c b/libblkid/src/superblocks/minix.c +index 3e80e5b22..a20d51f2c 100644 +--- a/libblkid/src/superblocks/minix.c ++++ b/libblkid/src/superblocks/minix.c +@@ -87,7 +87,8 @@ static int probe_minix(blkid_probe pr, const struct blkid_idmag *mag) + + if (version <= 2) { + struct minix_super_block *sb = (struct minix_super_block *) data; +- int zones, ninodes, imaps, zmaps, firstz; ++ unsigned long zones, ninodes, imaps, zmaps; ++ off_t firstz; + + if (sb->s_imap_blocks == 0 || sb->s_zmap_blocks == 0) + return 1; +-- +2.14.4 + diff --git a/SOURCES/0151-libblkid-minix-Sanity-check-superblock-s_state-for-v.patch b/SOURCES/0151-libblkid-minix-Sanity-check-superblock-s_state-for-v.patch new file mode 100644 index 0000000..d646253 --- /dev/null +++ b/SOURCES/0151-libblkid-minix-Sanity-check-superblock-s_state-for-v.patch @@ -0,0 +1,44 @@ +From 289f0cd75f168f86702913658ebe2dbfd8e987c6 Mon Sep 17 00:00:00 2001 +From: Nate Clark +Date: Wed, 4 Jan 2017 15:21:17 -0500 +Subject: [PATCH 151/152] libblkid/minix: Sanity check superblock s_state for v + 1 and 2 + +Swap devices with specific values in the uuid can look like minix +devices to blkid. Add an extra check to make sure the state of the +filesystem has valid state flags. + +A couple of offending swap uuids include: +35f1f264-137f-471a-bc85-acc9f4bc04a3 +35f1f264-7f13-471a-bc85-acc9f4bc04a3 +35f1f264-138f-471a-bc85-acc9f4bc04a3 +35f1f264-8f13-471a-bc85-acc9f4bc04a3 + +Without this change a swap device with any of those uuids would be +detected as minix and swap by blkid. + +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1594681 +Upstream: http://github.com/karelzak/util-linux/commit/892553b1a41b449f58462f123eca2bf2c6c56b33 +Signed-off-by: Nate Clark +--- + libblkid/src/superblocks/minix.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/libblkid/src/superblocks/minix.c b/libblkid/src/superblocks/minix.c +index a20d51f2c..4e70fda8f 100644 +--- a/libblkid/src/superblocks/minix.c ++++ b/libblkid/src/superblocks/minix.c +@@ -93,6 +93,10 @@ static int probe_minix(blkid_probe pr, const struct blkid_idmag *mag) + if (sb->s_imap_blocks == 0 || sb->s_zmap_blocks == 0) + return 1; + ++ uint16_t state = minix_swab16(swabme, sb->s_state); ++ if ((state & (MINIX_VALID_FS | MINIX_ERROR_FS)) != state) ++ return 1; ++ + zones = version == 2 ? minix_swab32(swabme, sb->s_zones) : + minix_swab16(swabme, sb->s_nzones); + ninodes = minix_swab16(swabme, sb->s_ninodes); +-- +2.14.4 + diff --git a/SOURCES/0152-libblkid-minix-Use-same-checks-for-version-3.patch b/SOURCES/0152-libblkid-minix-Use-same-checks-for-version-3.patch new file mode 100644 index 0000000..31bb209 --- /dev/null +++ b/SOURCES/0152-libblkid-minix-Use-same-checks-for-version-3.patch @@ -0,0 +1,90 @@ +From 0ade71743e5f96fbdb0f4a85c3eef22b88363f13 Mon Sep 17 00:00:00 2001 +From: Nate Clark +Date: Wed, 4 Jan 2017 15:24:32 -0500 +Subject: [PATCH 152/152] libblkid/minix: Use same checks for version 3 + +fsck.minix performs the same sanity checks on all versions of the +superblock. Update the probe to perform the same sanity checks so it is +less likely a different type of filesystem will be identified as minix. + +Upstream: http://github.com/karelzak/util-linux/commit/f82c804869bb8613fa0924e3111b7eb55bb04fcd +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1594681 +Signed-off-by: Nate Clark +Signed-off-by: Karel Zak +--- + libblkid/src/superblocks/minix.c | 38 +++++++++++++++++++++++--------------- + 1 file changed, 23 insertions(+), 15 deletions(-) + +diff --git a/libblkid/src/superblocks/minix.c b/libblkid/src/superblocks/minix.c +index 4e70fda8f..21b3bf8bb 100644 +--- a/libblkid/src/superblocks/minix.c ++++ b/libblkid/src/superblocks/minix.c +@@ -75,6 +75,9 @@ static int probe_minix(blkid_probe pr, const struct blkid_idmag *mag) + unsigned char *ext; + const unsigned char *data; + int version = 0, swabme = 0; ++ unsigned long zones, ninodes, imaps, zmaps; ++ off_t firstz; ++ size_t zone_size; + + data = blkid_probe_get_buffer(pr, 1024, + max(sizeof(struct minix_super_block), +@@ -85,14 +88,9 @@ static int probe_minix(blkid_probe pr, const struct blkid_idmag *mag) + if (version < 1) + return 1; + ++ + if (version <= 2) { + struct minix_super_block *sb = (struct minix_super_block *) data; +- unsigned long zones, ninodes, imaps, zmaps; +- off_t firstz; +- +- if (sb->s_imap_blocks == 0 || sb->s_zmap_blocks == 0) +- return 1; +- + uint16_t state = minix_swab16(swabme, sb->s_state); + if ((state & (MINIX_VALID_FS | MINIX_ERROR_FS)) != state) + return 1; +@@ -103,20 +101,30 @@ static int probe_minix(blkid_probe pr, const struct blkid_idmag *mag) + imaps = minix_swab16(swabme, sb->s_imap_blocks); + zmaps = minix_swab16(swabme, sb->s_zmap_blocks); + firstz = minix_swab16(swabme, sb->s_firstdatazone); +- +- /* sanity checks to be sure that the FS is really minix */ +- if (imaps * MINIX_BLOCK_SIZE * 8 < ninodes + 1) +- return 1; +- if (zmaps * MINIX_BLOCK_SIZE * 8 < zones - firstz + 1) +- return 1; +- ++ zone_size = sb->s_log_zone_size; + } else if (version == 3) { + struct minix3_super_block *sb = (struct minix3_super_block *) data; + +- if (sb->s_imap_blocks == 0 || sb->s_zmap_blocks == 0) +- return 1; ++ zones = minix_swab32(swabme, sb->s_zones); ++ ninodes = minix_swab32(swabme, sb->s_ninodes); ++ imaps = minix_swab16(swabme, sb->s_imap_blocks); ++ zmaps = minix_swab16(swabme, sb->s_zmap_blocks); ++ firstz = minix_swab16(swabme, sb->s_firstdatazone); ++ zone_size = sb->s_log_zone_size; + } + ++ /* sanity checks to be sure that the FS is really minix. ++ * see disk-utils/fsck.minix.c read_superblock ++ */ ++ if (zone_size != 0 || ninodes == 0 || ninodes == UINT32_MAX) ++ return 1; ++ if (imaps * MINIX_BLOCK_SIZE * 8 < ninodes + 1) ++ return 1; ++ if (firstz > (off_t) zones) ++ return 1; ++ if (zmaps * MINIX_BLOCK_SIZE * 8 < zones - firstz + 1) ++ return 1; ++ + /* unfortunately, some parts of ext3 is sometimes possible to + * interpreted as minix superblock. So check for extN magic + * string. (For extN magic string and offsets see ext.c.) +-- +2.14.4 + diff --git a/SPECS/util-linux.spec b/SPECS/util-linux.spec index 48100e4..904ef70 100644 --- a/SPECS/util-linux.spec +++ b/SPECS/util-linux.spec @@ -2,7 +2,7 @@ Summary: A collection of basic system utilities Name: util-linux Version: 2.23.2 -Release: 52%{?dist} +Release: 52%{?dist}.1 License: GPLv2 and GPLv2+ and LGPLv2+ and BSD with advertising and Public Domain Group: System Environment/Base URL: http://en.wikipedia.org/wiki/Util-linux @@ -386,6 +386,15 @@ Patch148: 0148-mkswap-tolerate-ENOTSUP-when-failing-to-relabel.patch # 1534893 - RHEL7: util-linux: mount/unmount ASLR bypass via environment variable in libmount Patch149: 0149-libmount-fix-debug-message.patch +# +# RHEL7.5.Z +# +# 1594681 - [RHEL7.2] blkid does not output swap area +Patch150: 0150-libblkid-minix-Match-minix-superblock-types.patch +Patch151: 0151-libblkid-minix-Sanity-check-superblock-s_state-for-v.patch +Patch152: 0152-libblkid-minix-Use-same-checks-for-version-3.patch + + %description The util-linux package contains a large variety of low-level system utilities that are necessary for a Linux system to function. Among @@ -1118,6 +1127,9 @@ fi %{_libdir}/pkgconfig/uuid.pc %changelog +* Thu Jul 12 2018 Karel Zak 2.23.2-52.el7_5.1 +- fix #1594681 - blkid does not output swap area + * Fri Feb 02 2018 Karel Zak 2.23.2-52 - fix #1534893 - RHEL7: util-linux: mount/unmount ASLR bypass via environment variable in libmount