Skip to content

Commit f73f969

Browse files
name2965kleikamp
authored andcommitted
jfs: Fix array-index-out-of-bounds in diFree
Reported-by: syzbot+241c815bda521982cb49@syzkaller.appspotmail.com Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Signed-off-by: Jeongjun Park <aha310510@gmail.com> Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
1 parent ce6dede commit f73f969

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

fs/jfs/jfs_imap.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ int diSync(struct inode *ipimap)
290290
int diRead(struct inode *ip)
291291
{
292292
struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb);
293-
int iagno, ino, extno, rc;
293+
int iagno, ino, extno, rc, agno;
294294
struct inode *ipimap;
295295
struct dinode *dp;
296296
struct iag *iagp;
@@ -339,8 +339,11 @@ int diRead(struct inode *ip)
339339

340340
/* get the ag for the iag */
341341
agstart = le64_to_cpu(iagp->agstart);
342+
agno = BLKTOAG(agstart, JFS_SBI(ip->i_sb));
342343

343344
release_metapage(mp);
345+
if (agno >= MAXAG || agno < 0)
346+
return -EIO;
344347

345348
rel_inode = (ino & (INOSPERPAGE - 1));
346349
pageno = blkno >> sbi->l2nbperpage;

0 commit comments

Comments
 (0)