Message ID | 20250121112204.12834-1-heming.zhao@suse.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | ocfs2: Fix incorrect CPU endianness conversion causing mount failure | expand |
On 2025/1/21 19:22, Heming Zhao wrote: > Commit 23aab037106d ("ocfs2: fix UBSAN warning in ocfs2_verify_volume()") > introduced a regression bug. The blksz_bits value is already converted > to CPU endian in the previous code; therefore, the code shouldn't use > le32_to_cpu() anymore. > > Fixes: 23aab037106d ("ocfs2: fix UBSAN warning in ocfs2_verify_volume()") > Signed-off-by: Heming Zhao <heming.zhao@suse.com> Thanks for pointing out this issue. Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com> > --- > fs/ocfs2/super.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c > index c79b4291777f..1e87554f6f41 100644 > --- a/fs/ocfs2/super.c > +++ b/fs/ocfs2/super.c > @@ -2340,7 +2340,7 @@ static int ocfs2_verify_volume(struct ocfs2_dinode *di, > mlog(ML_ERROR, "found superblock with incorrect block " > "size bits: found %u, should be 9, 10, 11, or 12\n", > blksz_bits); > - } else if ((1 << le32_to_cpu(blksz_bits)) != blksz) { > + } else if ((1 << blksz_bits) != blksz) { > mlog(ML_ERROR, "found superblock with incorrect block " > "size: found %u, should be %u\n", 1 << blksz_bits, blksz); > } else if (le16_to_cpu(di->id2.i_super.s_major_rev_level) !=
diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c index c79b4291777f..1e87554f6f41 100644 --- a/fs/ocfs2/super.c +++ b/fs/ocfs2/super.c @@ -2340,7 +2340,7 @@ static int ocfs2_verify_volume(struct ocfs2_dinode *di, mlog(ML_ERROR, "found superblock with incorrect block " "size bits: found %u, should be 9, 10, 11, or 12\n", blksz_bits); - } else if ((1 << le32_to_cpu(blksz_bits)) != blksz) { + } else if ((1 << blksz_bits) != blksz) { mlog(ML_ERROR, "found superblock with incorrect block " "size: found %u, should be %u\n", 1 << blksz_bits, blksz); } else if (le16_to_cpu(di->id2.i_super.s_major_rev_level) !=
Commit 23aab037106d ("ocfs2: fix UBSAN warning in ocfs2_verify_volume()") introduced a regression bug. The blksz_bits value is already converted to CPU endian in the previous code; therefore, the code shouldn't use le32_to_cpu() anymore. Fixes: 23aab037106d ("ocfs2: fix UBSAN warning in ocfs2_verify_volume()") Signed-off-by: Heming Zhao <heming.zhao@suse.com> --- fs/ocfs2/super.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)