]> www.infradead.org Git - users/hch/xfsprogs.git/commitdiff
xfs_repair: check for unknown flags in attr entries
authorDarrick J. Wong <djwong@kernel.org>
Wed, 3 Jul 2024 21:21:19 +0000 (14:21 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Tue, 9 Jul 2024 22:37:00 +0000 (15:37 -0700)
Explicitly check for unknown bits being set in the shortform and leaf
attr entries.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
repair/attr_repair.c

index a756a40db9b0968f450f56a63d4bb3b92b5fbc9c..37b5852b885ebb3ff8a07d4768af579f731c1596 100644 (file)
@@ -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"),