Re: [PATCH 1/2] crypto: tcrypt - fix S/G table for test_aead_speed()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Oct 10, 2017 at 01:21:59PM +0300, Robert Baronescu wrote:
> In case buffer length is a multiple of PAGE_SIZE,
> the S/G table is incorrectly generated.
> Fix this by handling buflen = k * PAGE_SIZE separately.
> 
> Signed-off-by: Robert Baronescu <robert.baronescu@xxxxxxx>
> ---
>  crypto/tcrypt.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/crypto/tcrypt.c b/crypto/tcrypt.c
> index 0022a18..bd9b66c 100644
> --- a/crypto/tcrypt.c
> +++ b/crypto/tcrypt.c
> @@ -221,11 +221,13 @@ static void sg_init_aead(struct scatterlist *sg, char *xbuf[XBUFSIZE],
>  	}
>  
>  	sg_init_table(sg, np + 1);
> -	np--;
> +	if (rem)
> +		np--;
>  	for (k = 0; k < np; k++)
>  		sg_set_buf(&sg[k + 1], xbuf[k], PAGE_SIZE);
>  
> -	sg_set_buf(&sg[k + 1], xbuf[k], rem);
> +	if (rem)
> +		sg_set_buf(&sg[k + 1], xbuf[k], rem);

Sorry but I think this is still buggy because you have not moved the
end-of-table marking in the rem == 0 case.

Cheers,
-- 
Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt



[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]

  Powered by Linux