diff --git a/[refs] b/[refs] index e277719e9638..732195ca5c7e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 370ec3d1ed9d76ba992e5b9b7d7d10700014d436 +refs/heads/master: e0d1f70010dce062ccce1bbd940a661e60b82631 diff --git a/trunk/fs/squashfs/block.c b/trunk/fs/squashfs/block.c index 1cb0d81b164b..653c030eb840 100644 --- a/trunk/fs/squashfs/block.c +++ b/trunk/fs/squashfs/block.c @@ -87,9 +87,8 @@ int squashfs_read_data(struct super_block *sb, void **buffer, u64 index, u64 cur_index = index >> msblk->devblksize_log2; int bytes, compressed, b = 0, k = 0, page = 0, avail; - - bh = kcalloc((msblk->block_size >> msblk->devblksize_log2) + 1, - sizeof(*bh), GFP_KERNEL); + bh = kcalloc(((srclength + msblk->devblksize - 1) + >> msblk->devblksize_log2) + 1, sizeof(*bh), GFP_KERNEL); if (bh == NULL) return -ENOMEM;