From: Darrick J. Wong Date: Mon, 29 Jul 2024 23:23:19 +0000 (-0700) Subject: xfs_repair: check for unknown flags in attr entries X-Git-Tag: v6.10.0~9^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2823d8ed93da2bd3880abb52a58e91a920961e27;p=thirdparty%2Fxfsprogs-dev.git xfs_repair: check for unknown flags in attr entries Explicitly check for unknown bits being set in the shortform and leaf attr entries. Signed-off-by: Darrick J. Wong Reviewed-by: Christoph Hellwig --- diff --git a/repair/attr_repair.c b/repair/attr_repair.c index a756a40d..37b5852b 100644 --- a/repair/attr_repair.c +++ b/repair/attr_repair.c @@ -291,6 +291,13 @@ process_shortform_attr( } } + if (currententry->flags & ~XFS_ATTR_ONDISK_MASK) { + do_warn( + _("unknown flags 0x%x in shortform attribute %d in inode %" PRIu64 "\n"), + currententry->flags, i, ino); + junkit = 1; + } + if (!libxfs_attr_check_namespace(currententry->flags)) { do_warn( _("multiple namespaces for shortform attribute %d in inode %" PRIu64 "\n"), @@ -648,6 +655,14 @@ process_leaf_attr_block( break; } + if (entry->flags & ~XFS_ATTR_ONDISK_MASK) { + do_warn( + _("unknown flags 0x%x in attribute entry #%d in attr block %u, inode %" PRIu64 "\n"), + entry->flags, i, da_bno, ino); + clearit = 1; + break; + } + if (!libxfs_attr_check_namespace(entry->flags)) { do_warn( _("multiple namespaces for attribute entry %d in attr block %u, inode %" PRIu64 "\n"),