2022-11-02 09:43:07

by Liu Shixin

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

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: [email protected]
Signed-off-by: Liu Shixin <[email protected]>
---
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