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:23:50 +0000 (23:23 +0100)
commitb3c721482b0fc54e09612f55309acade6b35a7d9
tree88fc09672c1710e4ed3b60c08f6e4871e533268e
parentea04412c1338e3730064c902db180ca534d450b2
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