]> err.no Git - util-linux/commit
libblkid: fix non-magic FAT detection
authorKarel Zak <kzak@redhat.com>
Thu, 1 Oct 2009 13:14:48 +0000 (15:14 +0200)
committerKarel Zak <kzak@redhat.com>
Thu, 1 Oct 2009 13:21:26 +0000 (15:21 +0200)
commit78419f261750efecfcde9a3b3c91b828821256ef
treef119c95f1ae5009a593f6c3bc46021135085406b
parent3d1b35b62dd15282162c21895c25b297768dcbb6
libblkid: fix non-magic FAT detection

On Wed, Sep 30, 2009 at 03:15:41PM +0200, Lawrence Rust wrote:
> The problem is with shlibs/blkid/src/probers/vfat.c.  At the end of
> this file  the struct blkid_idinfo is declared with some magic
> search strings.   In particular, 2 patterns are defined to match the
> single byte jmp/jxx opcodes at the start of a DOS boot sector.
> Because the partition was once formatted as a bootable DOS
> partition it matches these patterns and consequently the function
> probe_vfat is called.  For these simple pattern matches the function
> probe_fat_nomagic is called to filter out false positives.
>
> In normal circumstances only MSDOS 2 and earlier floppies should be
> detected by this function.  A very important feature of these disks
> is the boot signature - bytes 0x55, 0xaa at the end of the 1st
> sector which indicate to the BIOS that  the disk is bootable.  All
> MSDOS floppies have these bytes but the function probe_fat_nomagic
> doesn't check for them.

Note that the msdos/vfat superblock comments has been suggested by
Lawrence.

Reported-by: Lawrence Rust <lawrence@softsystem.co.uk>
Signed-off-by: Karel Zak <kzak@redhat.com>
shlibs/blkid/src/superblocks/vfat.c