Fix memory leaks in CTLOG_new_from_base64
authorBenjamin Kaduk <bkaduk@akamai.com>
Fri, 9 Jun 2017 17:31:11 +0000 (13:31 -0400)
committerRich Salz <rsalz@openssl.org>
Fri, 9 Jun 2017 17:32:29 +0000 (13:32 -0400)
commit62b0a0dea612e3683c6bd4bef359fceda00238e8
tree46da1e6a25e540698cb6b896440c8f70fffe6d2b
parent388d679a4fd8a408e7c7c1867cc974cdc977ae63
Fix memory leaks in CTLOG_new_from_base64

Move the call to ct_base64_decode(), which allocates, until after
the check for NULL output parameter.

Also place a cap on the number of padding characters used to decrement
the output length -- any more than two '='s is not permitted in a
well-formed base64 text.  Prior to this change, ct_base64_decode() would
return a length of -1 along with allocated storage for an input of
"====".

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/3379)
crypto/ct/ct_b64.c
test/ct_test.c