diff --git a/block/fops.c b/block/fops.c index 49ae0302f123..01bc8afe3b48 100644 --- a/block/fops.c +++ b/block/fops.c @@ -19,6 +19,7 @@ #include #include #include +#include #include "blk.h" static inline struct inode *bdev_file_inode(struct file *file) @@ -942,6 +943,8 @@ static int blkdev_init_dma_buf_io_ctx(struct file *file, if (!(file->f_flags & O_DIRECT)) return -EINVAL; + if (ctx->dmabuf->size > UINT_MAX) + return -EINVAL; if (!disk->fops->init_dma_buf_io_ctx) return -EOPNOTSUPP; if (bdev_has_integrity_csum(bdev))