Properly allocate the space for the bio_vecs instead of just one byte per bio_vec. Fixes: 991fc1d2e65e ("xfs: use bios directly to write log buffers") Reported-by: syzbot+b75afdbe271a0d7ac4f6@xxxxxxxxxxxxxxxxxxxxxxxxx Signed-off-by: Christoph Hellwig <hch@xxxxxx> --- fs/xfs/xfs_log.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 0f849b4095d6..e230f3c18ceb 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -1415,7 +1415,8 @@ xlog_alloc_log( */ ASSERT(log->l_iclog_size >= 4096); for (i = 0; i < log->l_iclog_bufs; i++) { - size_t bvec_size = howmany(log->l_iclog_size, PAGE_SIZE); + size_t bvec_size = howmany(log->l_iclog_size, PAGE_SIZE) * + sizeof(struct bio_vec); iclog = kmem_zalloc(sizeof(*iclog) + bvec_size, KM_MAYFAIL); if (!iclog) -- 2.20.1