crypto: sm3 - fix undefined shift by >= width of value
authorEric Biggers <ebiggers@google.com>
Wed, 9 Jan 2019 06:12:41 +0000 (22:12 -0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 10 Jan 2019 13:37:32 +0000 (21:37 +0800)
commitd45a90cb5d061fa7d411b974b950fe0b8bc5f265
tree49032700a8eaadb4eac60f5812202c9a22bd1991
parent1bea445b0a022ee126ca328b3705cd4df18ebc14
crypto: sm3 - fix undefined shift by >= width of value

sm3_compress() calls rol32() with shift >= 32, which causes undefined
behavior.  This is easily detected by enabling CONFIG_UBSAN.

Explicitly AND with 31 to make the behavior well defined.

Fixes: 4f0fc1600edb ("crypto: sm3 - add OSCCA SM3 secure hash")
Cc: <stable@vger.kernel.org> # v4.15+
Cc: Gilad Ben-Yossef <gilad@benyossef.com>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/sm3_generic.c