提交 eedeeeff 编写于 作者: S Shmulik Ladkani 提交者: Jason Wang

vmxnet3: Do not fill stats if device is inactive

Guest OS may issue VMXNET3_CMD_GET_STATS even before device was
activated (for example in linux, after insmod but prior net-dev open).

Accessing shared descriptors prior device activation is illegal as the
VMXNET3State structures have not been fully initialized.

As a result, guest memory gets corrupted and may lead to guest OS
crashes.

Fix, by not filling the stats descriptors if device is inactive.
Reported-by: NLeonid Shatz <leonid.shatz@ravellosystems.com>
Acked-by: NDmitry Fleytman <dmitry@daynix.com>
Signed-off-by: NDana Rubin <dana.rubin@ravellosystems.com>
Signed-off-by: NShmulik Ladkani <shmulik.ladkani@ravellosystems.com>
Signed-off-by: NJason Wang <jasowang@redhat.com>
上级 d3e0c032
......@@ -1289,6 +1289,10 @@ static uint32_t vmxnet3_get_interrupt_config(VMXNET3State *s)
static void vmxnet3_fill_stats(VMXNET3State *s)
{
int i;
if (!s->device_active)
return;
for (i = 0; i < s->txq_num; i++) {
cpu_physical_memory_write(s->txq_descr[i].tx_stats_pa,
&s->txq_descr[i].txq_stats,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册