Fix overflow in c2i_ASN1_BIT_STRING.
authorDavid Benjamin <davidben@google.com>
Mon, 18 Sep 2017 19:58:41 +0000 (15:58 -0400)
committerAndy Polyakov <appro@openssl.org>
Tue, 19 Sep 2017 19:31:30 +0000 (21:31 +0200)
commit6b1c8204b33aaedb7df7a009c241412839aaf950
tree9b822badeb0715731bd89aea53efb6302a2a8798
parentd2ef6e4ecc517de9d3d7f71180a6855f1f4d3243
Fix overflow in c2i_ASN1_BIT_STRING.

c2i_ASN1_BIT_STRING takes length as a long but uses it as an int.  Check
bounds before doing so. Previously, excessively large inputs to the
function could write a single byte outside the target buffer. (This is
unreachable as asn1_ex_c2i already uses int for the length.)

Thanks to NCC for finding this issue. Fix written by Martin Kreichgauer.

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/4385)
crypto/asn1/a_bitstr.c