Whamcloud - gitweb
debugfs: fix header checks in logdump
authorTheodore Ts'o <tytso@mit.edu>
Fri, 12 Feb 2021 21:50:07 +0000 (16:50 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 12 Feb 2021 21:50:07 +0000 (16:50 -0500)
Fixes: bd9ac48c9200 ("debugfs: add journal header checks in logdump")
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
debugfs/logdump.c

index 32757f3..5d3f3d9 100644 (file)
@@ -406,10 +406,13 @@ static void dump_journal(char *cmdname, FILE *out_file,
                        "Journal superblock magic number invalid!\n");
                return;
        }
                        "Journal superblock magic number invalid!\n");
                return;
        }
-       if (be32_to_cpu(jsb->s_blocksize) != blocksize) {
+       blocksize = be32_to_cpu(jsb->s_blocksize);
+       if ((current_fs && (blocksize != current_fs->blocksize)) ||
+           (!current_fs && (!blocksize || (blocksize & (blocksize - 1)) ||
+                            (blocksize > 65536)))) {
                fprintf(out_file,
                fprintf(out_file,
-                       "Journal block size invalid: %u\n",
-                       be32_to_cpu(jsb->s_blocksize));
+                       "Journal block size invalid: %u (%u)\n",
+                       be32_to_cpu(jsb->s_blocksize), blocksize);
                return;
        }
        transaction = be32_to_cpu(jsb->s_sequence);
                return;
        }
        transaction = be32_to_cpu(jsb->s_sequence);