OSDN Git Service

virtio_net: fix use after free
authorMichael S. Tsirkin <mst@redhat.com>
Wed, 15 Oct 2014 13:23:28 +0000 (16:23 +0300)
committerDavid S. Miller <davem@davemloft.net>
Wed, 15 Oct 2014 20:47:45 +0000 (16:47 -0400)
commit4b7fd2e688d51f8ed7380758047fcaa4d4693d47
treee4e32b6121ab17b8b21aac673a69e16bace31c28
parent28b5f058cf1d268d965894ce42a614d13f853dd6
virtio_net: fix use after free

commit 0b725a2ca61bedc33a2a63d0451d528b268cf975
    net: Remove ndo_xmit_flush netdev operation, use signalling instead.

added code that looks at skb->xmit_more after the skb has
been put in TX VQ. Since some paths process the ring and free the skb
immediately, this can cause use after free.

Fix by storing xmit_more in a local variable.

Cc: David S. Miller <davem@davemloft.net>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/virtio_net.c