]> git.baikalelectronics.ru Git - kernel.git/commit
xfs: check sb_agblocks and sb_agblklog when validating superblock
authorDarrick J. Wong <darrick.wong@oracle.com>
Wed, 17 Jan 2018 03:04:09 +0000 (19:04 -0800)
committerDarrick J. Wong <darrick.wong@oracle.com>
Thu, 18 Jan 2018 05:00:47 +0000 (21:00 -0800)
commita23e33cfcf147b1aecf66312c21e636ea455a832
treec5b2139794cd13ae841dd3b2d04848a35748438c
parentf70fd80482258d383e59acf14eb3a267be9fcf4f
xfs: check sb_agblocks and sb_agblklog when validating superblock

Currently, we don't check sb_agblocks or sb_agblklog when we validate
the superblock, which means that we can fuzz garbage values into those
values and the mount succeeds.  This leads to all sorts of UBSAN
warnings in xfs/350 since we can then coerce other parts of xfs into
shifting by ridiculously large values.

Once we've validated agblocks, make sure the agcount makes sense.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
fs/xfs/libxfs/xfs_fs.h
fs/xfs/libxfs/xfs_sb.c