[PATCH] fs/jfs: fix assert failed in dbFindBits()

From: Liu Shixin
Date: Wed Nov 02 2022 - 04:55:48 EST


syzkaller reported a bug:

BUG at fs/jfs/jfs_dmap.c:2984 assert(bitno < 32)

Since we increased bitno before check (mask != 0) in the loop, the value
can reach 32. Modify the assert condition to (bitno <= 32) to fix it.

Reported-by: syzbot+c6357942fbe0fce51c76@xxxxxxxxxxxxxxxxxxxxxxxxx
Signed-off-by: Liu Shixin <liushixin2@xxxxxxxxxx>
---
fs/jfs/jfs_dmap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/jfs/jfs_dmap.c b/fs/jfs/jfs_dmap.c
index 6b838d3ae7c2..7bd57728edf3 100644
--- a/fs/jfs/jfs_dmap.c
+++ b/fs/jfs/jfs_dmap.c
@@ -2981,7 +2981,7 @@ static int dbFindBits(u32 word, int l2nb)
break;
}

- ASSERT(bitno < 32);
+ ASSERT(bitno <= 32);

/* return the bit number.
*/
--
2.25.1