]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
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)
committerKleber Sacilotto de Souza <kleber.souza@canonical.com>
Wed, 14 Aug 2019 09:18:49 +0000 (11:18 +0200)
commit7546efd017b3b1b0854963be74d8ca2e40e1cc01
treeb4a414e37c461cf4f2d6b8d55db24ece3381dde8
parent44b48ef381d1d541935dfb2d6d3bd9df63725a8e
crypto: sm3 - fix undefined shift by >= width of value

BugLink: https://bugs.launchpad.net/bugs/1837477
commit d45a90cb5d061fa7d411b974b950fe0b8bc5f265 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
crypto/sm3_generic.c