[Bug 252787] fstyp heuristics can misidentify UFS file systems created by newfs, goofs up autofs's special_media map

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sun Jan 17 19:09:17 UTC 2021


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=252787

            Bug ID: 252787
           Summary: fstyp heuristics can misidentify UFS file systems
                    created by newfs, goofs up autofs's special_media map
           Product: Base System
           Version: 12.2-STABLE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: bin
          Assignee: bugs at FreeBSD.org
          Reporter: kreuter at progn.net

Created attachment 221685
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=221685&action=edit
Demonstrate fstyp's failure to detect UFS on a suitably evolved volume

The code fstyp uses to detect FAT and EXFAT look for magic strings in a block
that UFS doesn't use, and fstyp checks for FAT formats before UFS. Together,
these have consequence that fstyp will misidentify the file system type on a
volume that has at one time been formatted with either of those formats and is
then reformatted with newfs without any intervening operation that overwrite
the first block on the volume. Reproduction attached.

Next, while I haven't reproduced, it looks as if the same issue will apply to a
volume that was once NTFS formatted (because the NTFS magic string is in the
same location, and the check for NTFS precedes the one for UFS).

Finally, because the default autofs special_media map uses fstyp to guess the
file system format on a volume, this combined behavior of newfs & fstyp
suffices to render such a file system unmountable by that map (though the
volume is mountable manually). 

I ran into this issue on a recently purchased USB storage device after changing
the MBR slice type (but not the slice's size) and creating a UFS file system on
that slice using newfs, only to find that the automounter couldn't mount the
volume.

Anyway, it's easy enough for a user to fix a given volume by overwriting some
bytes where FAT/EXFAT/NTFS stores its magic string, so perhaps this is just a
documentation issue, perhaps for the fstyp man page. (It's not clear to me that
any of newfs, fstyp, or the special_media map is doing anything wrong. But they
happen not to combine to achieve the desired result in this specific scenario,
so something seems to want improvement.)

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list