Avoid negative array index in BIO_debug_callback()
authorBenjamin Kaduk <bkaduk@akamai.com>
Tue, 8 Mar 2016 22:44:57 +0000 (16:44 -0600)
committerRich Salz <rsalz@akamai.com>
Thu, 10 Mar 2016 01:52:19 +0000 (20:52 -0500)
commita1673e1536729d49cb758b988ac7be368e9b1fdb
tree04eba61c46623b06f50f0861ecc44aaf426b3d70
parent80e8fdbe793c8861411e9f49ea290847fa99f4c7
Avoid negative array index in BIO_debug_callback()

BIO_snprintf() can return -1 on truncation (and overflow as of commit
9cb177301fdab492e4cfef376b28339afe3ef663).  Though neither can
realistically occur while printing a pointer and short fixed string into
a buffer of length 256, the analysis to confirm that this the case goes
somewhat far up the call chain, and not all static analyzers can
successfully follow the chain of logic.

It's easy enough to clamp the returned length to be nonnegative before
continuing, which appeases the static analyzer and does not harm the
subsequent code.

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
crypto/bio/bio_cb.c