examples/vhost: fix use after free on drain
authorWenwu Ma <wenwux.ma@intel.com>
Fri, 24 Sep 2021 17:23:00 +0000 (17:23 +0000)
committerMaxime Coquelin <maxime.coquelin@redhat.com>
Thu, 21 Oct 2021 12:24:21 +0000 (14:24 +0200)
commitad5050e42ea0575cffe50142d60a5f47d5915add
treeab31a421627f8f47848e1c827d03918ea9068fc0
parent99ebada2d6d9db23be39f737f26c7bf5f0a26b9c
examples/vhost: fix use after free on drain

When a vdev is removed in destroy_device function,
the corresponding vhost TX buffer will also be freed,
but the vhost TX buffer may still be used in the
drain_vhost function, which will cause an error of
heap-use-after-free. Therefore, before accessing
vhost TX buffer, we need to check whether the vdev
has been removed, if so, let's skip this vdev.

Fixes: a68ba8e0a6b6 ("examples/vhost: refactor vhost data path")
Cc: stable@dpdk.org
Signed-off-by: Wenwu Ma <wenwux.ma@intel.com>
Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>
examples/vhost/main.c