mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-12-28 16:56:26 +00:00
xfs: sb_spino_align is not verified
It's just read in from the superblock and used without doing any
validity checks at all on the value.
Fixes: fb4f2b4e5a
("xfs: add sparse inode chunk alignment superblock field")
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
This commit is contained in:
parent
792ef2745d
commit
59e43f5479
@ -398,6 +398,20 @@ xfs_validate_sb_common(
|
||||
sbp->sb_inoalignmt, align);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (!sbp->sb_spino_align ||
|
||||
sbp->sb_spino_align > sbp->sb_inoalignmt ||
|
||||
(sbp->sb_inoalignmt % sbp->sb_spino_align) != 0) {
|
||||
xfs_warn(mp,
|
||||
"Sparse inode alignment (%u) is invalid.",
|
||||
sbp->sb_spino_align);
|
||||
return -EINVAL;
|
||||
}
|
||||
} else if (sbp->sb_spino_align) {
|
||||
xfs_warn(mp,
|
||||
"Sparse inode alignment (%u) should be zero.",
|
||||
sbp->sb_spino_align);
|
||||
return -EINVAL;
|
||||
}
|
||||
} else if (sbp->sb_qflags & (XFS_PQUOTA_ENFD | XFS_GQUOTA_ENFD |
|
||||
XFS_PQUOTA_CHKD | XFS_GQUOTA_CHKD)) {
|
||||
|
Loading…
Reference in New Issue
Block a user