BIO_printf() can fail to print the last character
authorMatt Caswell <matt@openssl.org>
Fri, 3 Jun 2016 14:53:54 +0000 (15:53 +0100)
committerMatt Caswell <matt@openssl.org>
Fri, 3 Jun 2016 19:31:24 +0000 (20:31 +0100)
commit96f1de5bf40af27db3df91c106d799fa86165eb9
tree3e348bd58a86ea8b843a587c3293c4150baacd63
parentf3cab0b11ffd1e1816f34a2880493ff1a3313f49
BIO_printf() can fail to print the last character

If the string to print is exactly 2048 character long (excluding the NULL
terminator) then BIO_printf will chop off the last byte. This is because
it has filled its static buffer but hasn't yet allocated a dynamic buffer.
In cases where we don't have a dynamic buffer we need to truncate but that
is not the case for BIO_printf(). We need to check whether we are able to
have a dynamic buffer buffer deciding to truncate.

Reviewed-by: Rich Salz <rsalz@openssl.org>
crypto/bio/b_print.c