From 1c04cf09dc1985afcaf56d3a6b68183fb92c5c2a Mon Sep 17 00:00:00 2001 From: Eric Sandeen Date: Tue, 18 Sep 2007 17:47:14 +0000 Subject: [PATCH] * Tue Sep 18 2007 Eric Sandeen 1.40.2-7 - Fix blkid fat probe when there is a real MBR (#290951) --- ...kid-FAT-magic-not-on-strict-position.patch | 67 +++++++++++++++++++ e2fsprogs.spec | 9 ++- 2 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 e2fsprogs-1.40.2-blkid-FAT-magic-not-on-strict-position.patch diff --git a/e2fsprogs-1.40.2-blkid-FAT-magic-not-on-strict-position.patch b/e2fsprogs-1.40.2-blkid-FAT-magic-not-on-strict-position.patch new file mode 100644 index 0000000..63ebf68 --- /dev/null +++ b/e2fsprogs-1.40.2-blkid-FAT-magic-not-on-strict-position.patch @@ -0,0 +1,67 @@ +From 3a493033ce3867a2561d60c1016dd0c03999e5eb Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Tue, 18 Sep 2007 15:29:59 +0200 +Subject: [PATCH] libblkid: FAT magic is not on strict position when there is a real MBR + +There is _optional_ reserved space before FAT: + + boot | reserved | FAT | FAT | root | data + sector | space | 1 | 2 | dir | region + +for more details see: + http://en.wikipedia.org/wiki/File_Allocation_Table + +The probe_fat() code already expects reserved space and other optional +junk in MBR+FAT, but the blkid_magic array expects strictly defined +positions of FAT magic strings. That's correct for 99% partitions, but +not for situation when on the same partition is real MBR. We need to check +for FAT filesystem also when we detect MBR signature (0x55AA on address 510). + +The blkid is not able to detect vfat on USB Disks where is only one +bootable partition with vfat, for example: + + # file -s /dev/sdc1 + /dev/sdc1: x86 boot sector; GRand Unified Bootloader, stage1 version + 0x3, 1st sector stage2 0x44ae, code offset 0x48, sectors/cluster 8, + Media descriptor 0xf8, heads 4, sectors 3901408 (volumes > 32 MB) , + physical drive 0xdb, physical drive 0x5b, reserved 0xe, dos < 4.0 + BootSector (0x0) + + # vol_id /dev/sdc1 + ID_FS_USAGE=filesystem + ID_FS_TYPE=vfat + ID_FS_VERSION=FAT32 + ID_FS_UUID=0044-AE80 + ID_FS_UUID_ENC=0044-AE80 + ID_FS_LABEL=Mdv_Flash + ID_FS_LABEL_ENC=Mdv_Flash + ID_FS_LABEL_SAFE=Mdv_Flash + +old version: + # blkid /dev/sdc1 + +fixed version: + # blkid /dev/sdc1 + /dev/sdc1: LABEL="MDV_FLASH" UUID="0044-AE80" TYPE="vfat" + +Signed-off-by: Karel Zak +--- + lib/blkid/probe.c | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/lib/blkid/probe.c b/lib/blkid/probe.c +index d56292e..42ec234 100644 +--- a/lib/blkid/probe.c ++++ b/lib/blkid/probe.c +@@ -849,6 +849,7 @@ static struct blkid_magic type_array[] = { + { "vfat", 0, 0x36, 8, "FAT12 ", probe_fat }, + { "vfat", 0, 0, 2, "\353\220", probe_fat_nomagic }, + { "vfat", 0, 0, 1, "\351", probe_fat_nomagic }, ++ { "vfat", 0, 0x1fe, 2, "\125\252", probe_fat }, + { "minix", 1, 0x10, 2, "\177\023", 0 }, + { "minix", 1, 0x10, 2, "\217\023", 0 }, + { "minix", 1, 0x10, 2, "\150\044", 0 }, +-- +1.5.2.4 + + diff --git a/e2fsprogs.spec b/e2fsprogs.spec index 7b8d7cc..d0e2da6 100644 --- a/e2fsprogs.spec +++ b/e2fsprogs.spec @@ -4,7 +4,7 @@ Summary: Utilities for managing the second and third extended (ext2/ext3) filesystems Name: e2fsprogs Version: 1.40.2 -Release: 6%{?dist} +Release: 7%{?dist} # License based on upstream-modified COPYING file, # which clearly states "V2" intent. License: GPLv2 @@ -22,6 +22,7 @@ Patch63: e2fsprogs-1.40.2-warning-fixes.patch Patch64: e2fsprogs-1.40.2-swapfs.patch Patch65: e2fsprogs-1.40.2-fix-open-create-modes.patch Patch66: e2fsprogs-1.40.2-protect-open-ops.patch +Patch67: e2fsprogs-1.40.2-blkid-FAT-magic-not-on-strict-position.patch Url: http://e2fsprogs.sourceforge.net/ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -100,6 +101,9 @@ also want to install e2fsprogs. %patch65 -p1 -b .creatmode # protect ->open ops from glibc open-create-mode-checker %patch66 -p1 -b .open +# fix fat probe when there is a real MBR +%patch67 -p1 -b .blkid-fat + %build aclocal autoconf @@ -260,6 +264,9 @@ exit 0 %{_mandir}/man3/uuid_unparse.3* %changelog +* Tue Sep 18 2007 Eric Sandeen 1.40.2-7 +- Fix blkid fat probe when there is a real MBR (#290951) + * Tue Sep 18 2007 Oliver Falk 1.40.2-6 - Add alpha to the header wrappers