• Kirk McKusick's avatar
    Do comprehensive UFS/FFS superblock integrity checks when reading a superblock. · 076002f2
    Kirk McKusick authored
    Historically only minimal checks were made of a superblock when it
    was read in as it was assumed that fsck would have been run to
    correct any errors before attempting to use the filesystem. Recently
    several bug reports have been submitted reporting kernel panics
    that can be triggered by deliberately corrupting filesystem superblocks,
    see Bug 263979 - [meta] UFS / FFS / GEOM crash (panic) tracking
    which is tracking the reported corruption bugs.
    
    This change upgrades the checks that are performed. These additional
    checks should prevent panics from a corrupted superblock. Although
    it appears in only one place, the new code will apply to the kernel
    modules and (through libufs) user applications that read in superblocks.
    
    Reported by:  Robert Morris and Neeraj
    Reviewed by:  kib
    Tested by:    Peter Holm
    PR:           263979
    MFC after:    1 month
    Differential Revision: https://reviews.freebsd.org/D35219
    076002f2