diff --git a/fs/jfs/jfs_dmap.c b/fs/jfs/jfs_dmap.c index 974ecf5e0d95..89c22a18314f 100644 --- a/fs/jfs/jfs_dmap.c +++ b/fs/jfs/jfs_dmap.c @@ -1217,7 +1217,7 @@ dbAllocNear(struct bmap * bmp, int word, lword, rc; s8 *leaf; - if (dp->tree.leafidx != cpu_to_le32(LEAFIND)) { + if (dp->tree.leafidx != cpu_to_le32(LEAFIND) || l2nb >= L2DBWORD) { jfs_error(bmp->db_ipbmap->i_sb, "Corrupt dmap page\n"); return -EIO; } @@ -1969,7 +1969,7 @@ dbAllocDmapLev(struct bmap * bmp, if (dbFindLeaf((dmtree_t *) &dp->tree, l2nb, &leafidx, false)) return -ENOSPC; - if (leafidx < 0) + if (leafidx < 0 || l2nb >= L2DBWORD) return -EIO; /* determine the block number within the file system corresponding