From 2823d8ed93da2bd3880abb52a58e91a920961e27 Mon Sep 17 00:00:00 2001 From: "Darrick J. Wong" Date: Mon, 29 Jul 2024 16:23:19 -0700 Subject: [PATCH] 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 --- repair/attr_repair.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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"), -- 2.47.3