Commit 3f7d9c19 authored by Philo Lu's avatar Philo Lu Committed by Paolo Abeni
Browse files

virtio_net: Add hash_key_length check



Add hash_key_length check in virtnet_probe() to avoid possible out of
bound errors when setting/reading the hash key.

Fixes: c7114b12 ("drivers/net/virtio_net: Added basic RSS support.")
Signed-off-by: default avatarPhilo Lu <lulie@linux.alibaba.com>
Signed-off-by: default avatarXuan Zhuo <xuanzhuo@linux.alibaba.com>
Acked-by: default avatarJoe Damato <jdamato@fastly.com>
Acked-by: default avatarMichael S. Tsirkin <mst@redhat.com>
Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent 86a48a00
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -6451,6 +6451,12 @@ static int virtnet_probe(struct virtio_device *vdev)
	if (vi->has_rss || vi->has_rss_hash_report) {
		vi->rss_key_size =
			virtio_cread8(vdev, offsetof(struct virtio_net_config, rss_max_key_size));
		if (vi->rss_key_size > VIRTIO_NET_RSS_MAX_KEY_SIZE) {
			dev_err(&vdev->dev, "rss_max_key_size=%u exceeds the limit %u.\n",
				vi->rss_key_size, VIRTIO_NET_RSS_MAX_KEY_SIZE);
			err = -EINVAL;
			goto free;
		}

		vi->rss_hash_types_supported =
		    virtio_cread32(vdev, offsetof(struct virtio_net_config, supported_hash_types));