Reject negative shifts for BN_rshift and BN_lshift
authorMatt Caswell <matt@openssl.org>
Tue, 19 May 2015 14:19:30 +0000 (15:19 +0100)
committerMatt Caswell <matt@openssl.org>
Fri, 22 May 2015 22:25:22 +0000 (23:25 +0100)
commitc0de854c9d44569529fb562f0a193e81c395ce94
tree3de363ced4307b8b0873244f87a13a7c0678e587
parent155ca14ea9fa64808782eca2b29583cfd9ff4d7f
Reject negative shifts for BN_rshift and BN_lshift

The functions BN_rshift and BN_lshift shift their arguments to the right or
left by a specified number of bits. Unpredicatable results (including
crashes) can occur if a negative number is supplied for the shift value.

Thanks to Mateusz Kocielski (LogicalTrust), Marek Kroemeke and Filip Palian
for discovering and reporting this issue.

Reviewed-by: Kurt Roeckx <kurt@openssl.org>
(cherry picked from commit 7cc18d8158b5fc2676393d99b51c30c135502107)

Conflicts:
crypto/bn/bn.h
crypto/bn/bn_err.c
crypto/bn/bn.h
crypto/bn/bn_err.c
crypto/bn/bn_shift.c
doc/crypto/BN_set_bit.pod