Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0ffaeadf authored by Michael S. Tsirkin's avatar Michael S. Tsirkin
Browse files

mic_virtio: robust feature array size calculation



mic reads sizeof(vdev->features) bits from device, but in fact it stores
bits in local features variable. use sizeof(features) to make code
robust against future changes extending sizeof(vdev->features).

Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>


parent e16e12be
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -76,8 +76,7 @@ static u32 mic_get_features(struct virtio_device *vdev)
	u8 __iomem *in_features = mic_vq_features(desc);
	int feature_len = ioread8(&desc->feature_len);

	bits = min_t(unsigned, feature_len,
		sizeof(vdev->features)) * 8;
	bits = min_t(unsigned, feature_len, sizeof(features)) * 8;
	for (i = 0; i < bits; i++)
		if (ioread8(&in_features[i / 8]) & (BIT(i % 8)))
			features |= BIT(i);