[PATCH] vhost/crypto: fix descriptor processing

Maxime Coquelin maxime.coquelin at redhat.com
Wed Jun 22 17:34:42 CEST 2022



On 6/22/22 17:30, David Marchand wrote:
> copy_data was returning a pointer to an increased (off by one) descriptor.
> Subsequent calls to copy_data in the library were then failing.
> Fix this by incrementing the descriptor only if there is some left data
> to copy.
> 
> Fixes: 7287660a21e0 ("vhost/crypto: fix build with GCC 12")
> 
> Reported-by: Jakub Poczatek <jakub.poczatek at intel.com>
> Signed-off-by: David Marchand <david.marchand at redhat.com>


Reviewed-by: Maxime Coquelin <maxime.coquelin at redhat.com>

And also, from discussions on the faulty commit thread, we can add:
Tested-by: Jakub Poczatek <jakub.poczatek at intel.com>

Thanks Jakub for the quick testing,
Maxime


> ---
>   lib/vhost/vhost_crypto.c | 3 +--
>   1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/lib/vhost/vhost_crypto.c b/lib/vhost/vhost_crypto.c
> index 96ffb82a5d..54946f46d9 100644
> --- a/lib/vhost/vhost_crypto.c
> +++ b/lib/vhost/vhost_crypto.c
> @@ -610,8 +610,7 @@ copy_data(void *data, struct vhost_crypto_data_req *vc_req,
>   			return -1;
>   		left -= copied;
>   		data = RTE_PTR_ADD(data, copied);
> -		desc++;
> -	} while (desc < head + max_n_descs && left != 0);
> +	} while (left != 0 && ++desc < head + max_n_descs);
>   
>   	if (unlikely(left != 0))
>   		return -1;



More information about the dev mailing list