Tracking issue to make coordination of existing ffs/ufs crash reports easier. Linked issues involve at least some aspect of ffs in the crash backtraces
See also: bug 244384
(In reply to Kubilay Kocak from comment #0)
Thanks for pulling these all together in a single place.
I am working on a general fix that should cover all of these bugs. The fix verifies the superblock when it is read in. Since there is a single piece of code that is used to read the superblock that is shared by the kernel, boot, and user code, it should cover all of these bugs. Stay tuned for a phabricator review.
See https://reviews.freebsd.org/D35219 for a proposed fix to these bug reports.
(In reply to Kirk McKusick from comment #2)
My pleasure Kirk. I believe a couple/few look like dupes, I'll be normalizing the summaries to make those clearer and close any dupes (with the older remaining open) tomorrow
P.S If this ends up being the issue in which analysis, comment and patches take place, rather than only a tracking issue, with resolution taking place separately for each existing issue, I'll switch the dependency to 'Blocks' rather than the current 'Depends on'.
^Triage: Kirks coordinating here (comment 2, assign accordingly)
A commit in branch main references this bug:
Author: Kirk McKusick <mckusick@FreeBSD.org>
AuthorDate: 2022-05-27 19:21:11 +0000
Commit: Kirk McKusick <mckusick@FreeBSD.org>
CommitDate: 2022-05-27 19:22:07 +0000
Do comprehensive UFS/FFS superblock integrity checks when reading a superblock.
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
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D35219
sys/ufs/ffs/ffs_subr.c | 163 +++++++++++++++++++++++++++++++++++++++++++------
1 file changed, 146 insertions(+), 17 deletions(-)