[dpdk-dev] [PATCH v4 05/19] vhost: fix error handling when mem table gets updated

Tiwei Bie tiwei.bie at intel.com
Tue Oct 9 13:35:41 CEST 2018


On Mon, Oct 08, 2018 at 05:25:43PM +0200, Maxime Coquelin wrote:
> When the memory table gets updated, the rings addresses need
> to be translated again. If it fails, we need to exit cleanly
> by unmapping memory regions.
> 
> Fixes: d5022533c20a ("vhost: retranslate vring addr when memory table changes")
> Cc: stable at dpdk.org
> 
> Signed-off-by: Maxime Coquelin <maxime.coquelin at redhat.com>
> Acked-by: Ilya Maximets <i.maximets at samsung.com>
> ---
>  lib/librte_vhost/vhost_user.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c
> index 71a0e7dd7..3f01926e2 100644
> --- a/lib/librte_vhost/vhost_user.c
> +++ b/lib/librte_vhost/vhost_user.c
> @@ -964,7 +964,7 @@ vhost_user_set_mem_table(struct virtio_net **pdev, struct VhostUserMsg *msg)
>  
>  			dev = translate_ring_addresses(dev, i);
>  			if (!dev)
> -				return VH_RESULT_ERR;
> +				goto err_mmap;

When dev is NULL, we can't just goto err_mmap directly,
otherwise we will dereference the NULL pointer.

>  
>  			*pdev = dev;
>  		}
> -- 
> 2.17.1
> 


More information about the dev mailing list