Re: [PATCH] crypto: sha512_ssse3: fix byte count to bit count conversion

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

 



Thanks for catching this.

Should propagate this patch to stable kernels 3.14, 3.12 and 3.10 too.

Acked-by: Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx>

On Mon, 2014-06-23 at 19:41 +0300, Jussi Kivilinna wrote:
> Byte-to-bit-count computation is only partly converted to big-endian and is
> mixing in CPU-endian values. Problem was noticed by sparce with warning:
> 
>   CHECK   arch/x86/crypto/sha512_ssse3_glue.c
> arch/x86/crypto/sha512_ssse3_glue.c:144:19: warning: restricted __be64 degrades to integer
> arch/x86/crypto/sha512_ssse3_glue.c:144:17: warning: incorrect type in assignment (different base types)
> arch/x86/crypto/sha512_ssse3_glue.c:144:17:    expected restricted __be64 <noident>
> arch/x86/crypto/sha512_ssse3_glue.c:144:17:    got unsigned long long
> 
> Cc: Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx>
> Signed-off-by: Jussi Kivilinna <jussi.kivilinna@xxxxxx>
> ---
>  arch/x86/crypto/sha512_ssse3_glue.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/x86/crypto/sha512_ssse3_glue.c b/arch/x86/crypto/sha512_ssse3_glue.c
> index f30cd10..8626b03 100644
> --- a/arch/x86/crypto/sha512_ssse3_glue.c
> +++ b/arch/x86/crypto/sha512_ssse3_glue.c
> @@ -141,7 +141,7 @@ static int sha512_ssse3_final(struct shash_desc *desc, u8 *out)
>  
>  	/* save number of bits */
>  	bits[1] = cpu_to_be64(sctx->count[0] << 3);
> -	bits[0] = cpu_to_be64(sctx->count[1] << 3) | sctx->count[0] >> 61;
> +	bits[0] = cpu_to_be64(sctx->count[1] << 3 | sctx->count[0] >> 61);
>  
>  	/* Pad out to 112 mod 128 and append length */
>  	index = sctx->count[0] & 0x7f;
> 


--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




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

  Powered by Linux