net/virtio: fix dangling pointer on failure
Checks
Commit Message
When eth_virtio_dev_init() is cleaning up, it does not correctly set
the mac_addrs variable to NULL, which will lead to a double free.
Found during unit-test fixes.
Fixes: 43d18765c027 ("net/virtio: fix memory leak on failure")
Cc: stable@dpdk.org
Reported-by: Michael Santana <msantana@redhat.com>
Signed-off-by: Aaron Conole <aconole@redhat.com>
---
drivers/net/virtio/virtio_ethdev.c | 1 +
1 file changed, 1 insertion(+)
Comments
On Mon, Apr 15, 2019 at 10:48:18AM -0400, Aaron Conole wrote:
> When eth_virtio_dev_init() is cleaning up, it does not correctly set
> the mac_addrs variable to NULL, which will lead to a double free.
>
> Found during unit-test fixes.
>
> Fixes: 43d18765c027 ("net/virtio: fix memory leak on failure")
> Cc: stable@dpdk.org
> Reported-by: Michael Santana <msantana@redhat.com>
> Signed-off-by: Aaron Conole <aconole@redhat.com>
> ---
> drivers/net/virtio/virtio_ethdev.c | 1 +
> 1 file changed, 1 insertion(+)
Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
On 4/15/19 4:48 PM, Aaron Conole wrote:
> When eth_virtio_dev_init() is cleaning up, it does not correctly set
> the mac_addrs variable to NULL, which will lead to a double free.
>
> Found during unit-test fixes.
>
> Fixes: 43d18765c027 ("net/virtio: fix memory leak on failure")
> Cc: stable@dpdk.org
> Reported-by: Michael Santana <msantana@redhat.com>
> Signed-off-by: Aaron Conole <aconole@redhat.com>
> ---
> drivers/net/virtio/virtio_ethdev.c | 1 +
> 1 file changed, 1 insertion(+)
Applied to dpdk-next-virtio/master.
Thanks,
Maxime
@@ -1862,6 +1862,7 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
out:
rte_free(eth_dev->data->mac_addrs);
+ eth_dev->data->mac_addrs = NULL;
return ret;
}