From: xiongweimin <[email protected]> Reject VHOST_IOTLB_INVALIDATE messages with size == 0 to prevent iova + size - 1 from underflowing to U64_MAX, which would incorrectly delete the entire IOTLB.
Signed-off-by: xiongweimin <[email protected]> --- drivers/vhost/vhost.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c index 3c080c454e374cabd7321416ed92c5f7d3135254..xxxxxxxxxx 100644 --- a/drivers/vhost/vhost.c +++ b/drivers/vhost/vhost.c @@ -1656,6 +1656,10 @@ static int vhost_process_iotlb_msg(struct vhost_dev *dev, u32 asid, if (!dev->iotlb) { ret = -EFAULT; break; + } + if (!msg->size) { + ret = -EINVAL; + break; } vhost_vq_meta_reset(dev); vhost_iotlb_del_range(dev->iotlb, msg->iova, -- 2.39.3
