On Wed, Aug 01, 2018 at 08:31:12AM +1000, Dave Chinner wrote: > On Tue, Jul 31, 2018 at 01:03:56PM -0700, Darrick J. Wong wrote: > > From: Darrick J. Wong <darrick.wong@xxxxxxxxxx> > > > > Before we start processing what we /think/ is a da3 node block, actually > > check the magic to make sure that we're looking at a node block. This > > way we won't blow the asserts in _node_hdr_from_disk on corrupted > > metadata. > > > > Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> > > --- > > fs/xfs/libxfs/xfs_da_btree.c | 5 ++++- > > 1 file changed, 4 insertions(+), 1 deletion(-) > > > > diff --git a/fs/xfs/libxfs/xfs_da_btree.c b/fs/xfs/libxfs/xfs_da_btree.c > > index 9efbd2038ffb..70e7da634f3e 100644 > > --- a/fs/xfs/libxfs/xfs_da_btree.c > > +++ b/fs/xfs/libxfs/xfs_da_btree.c > > @@ -1522,8 +1522,11 @@ xfs_da3_node_lookup_int( > > break; > > } > > > > - blk->magic = XFS_DA_NODE_MAGIC; > > + if (blk->magic != XFS_DA_NODE_MAGIC && > > + blk->magic != XFS_DA3_NODE_MAGIC) > > + return -EFSCORRUPTED; > > > > + blk->magic = XFS_DA_NODE_MAGIC; > > Can we please use a temporary variable for the on-disk magic number > checks, then? blk->magic isn't supposed to hold the on disk format > magic number - it's just an indication of the format the current > state block points at - so using it to temporarily store the on disk > magic number for checks like this is just wrong.... Ok. --D > Cheers, > > Dave. > -- > Dave Chinner > david@xxxxxxxxxxxxx > -- > To unsubscribe from this list: send the line "unsubscribe linux-xfs" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html