virtio-net: correctly check num_buf during err path
authorJason Wang <jasowang@redhat.com>
Tue, 22 May 2018 03:44:30 +0000 (11:44 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 11 Jun 2018 20:49:21 +0000 (22:49 +0200)
commit155cd575588bca1ef1dd77e37386a737f4c0153e
treeafa3d1aba8ec3b313baa651cfe1824d2d97bbe67
parente2d47fa107f98e131b2025aed208c4c9ed9549b9
virtio-net: correctly check num_buf during err path

[ Upstream commit 850e088d5bbb333342fd4def08d0a4035f2b7126 ]

If we successfully linearize the packet, num_buf will be set to zero
which may confuse error handling path which assumes num_buf is at
least 1 and this can lead the code tries to pop the descriptor of next
buffer. Fixing this by checking num_buf against 1 before decreasing.

Fixes: 4941d472bf95 ("virtio-net: do not reset during XDP set")
Signed-off-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/virtio_net.c