summaryrefslogtreecommitdiff
path: root/debugfs
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2021-02-12 16:50:07 -0500
committerTheodore Ts'o <tytso@mit.edu>2021-02-12 16:50:07 -0500
commiteef68a593f7f1a1c60be6da670cc3c7abb7d013a (patch)
tree3bab8163a624bce20ce2c60039c57537377a04e2 /debugfs
parent4d8169ad2aeb6d1c176c716887bdaa1762a14560 (diff)
downloade2fsprogs-eef68a593f7f1a1c60be6da670cc3c7abb7d013a.tar.gz
debugfs: fix header checks in logdump
Fixes: bd9ac48c9200 ("debugfs: add journal header checks in logdump") Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'debugfs')
-rw-r--r--debugfs/logdump.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/debugfs/logdump.c b/debugfs/logdump.c
index 32757f30..5d3f3d9a 100644
--- a/debugfs/logdump.c
+++ b/debugfs/logdump.c
@@ -406,10 +406,13 @@ static void dump_journal(char *cmdname, FILE *out_file,
"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,
- "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);