mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 10:31:46 +09:00
virtio_net: Add hash_key_length check
[ Upstream commit 3f7d9c1964fcd16d02a8a9d4fd6f6cb60c4cc530 ]
Add hash_key_length check in virtnet_probe() to avoid possible out of
bound errors when setting/reading the hash key.
Fixes: c7114b1249 ("drivers/net/virtio_net: Added basic RSS support.")
Signed-off-by: Philo Lu <lulie@linux.alibaba.com>
Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
Acked-by: Joe Damato <jdamato@fastly.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
2af6499260
commit
f3401e3c8d
@@ -3887,6 +3887,12 @@ static int virtnet_probe(struct virtio_device *vdev)
|
|||||||
if (vi->has_rss || vi->has_rss_hash_report) {
|
if (vi->has_rss || vi->has_rss_hash_report) {
|
||||||
vi->rss_key_size =
|
vi->rss_key_size =
|
||||||
virtio_cread8(vdev, offsetof(struct virtio_net_config, rss_max_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 =
|
vi->rss_hash_types_supported =
|
||||||
virtio_cread32(vdev, offsetof(struct virtio_net_config, supported_hash_types));
|
virtio_cread32(vdev, offsetof(struct virtio_net_config, supported_hash_types));
|
||||||
|
|||||||
Reference in New Issue
Block a user