diff options
author | Rémi Verschelde <remi@verschelde.fr> | 2016-05-04 08:35:35 +0200 |
---|---|---|
committer | Rémi Verschelde <remi@verschelde.fr> | 2016-05-04 08:35:35 +0200 |
commit | 3279ad79c3dcecbb2c5c001775d7a28f982e0955 (patch) | |
tree | 2511b58f7b1b50fc0b9b84efa1c29fe25bd7876b /drivers/builtin_openssl2/ssl/ssl_cert.c | |
parent | 6a4b62e72069f7c96f8b7cb9b7855da0bbd84b63 (diff) | |
parent | ab623c923d4e2c950342aec5da371cb92b1fbbc6 (diff) |
Merge pull request #4540 from mrezai/openssl-1.0.2h
Update OpenSSL to 1.0.2h
Diffstat (limited to 'drivers/builtin_openssl2/ssl/ssl_cert.c')
-rw-r--r-- | drivers/builtin_openssl2/ssl/ssl_cert.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/builtin_openssl2/ssl/ssl_cert.c b/drivers/builtin_openssl2/ssl/ssl_cert.c index a73f866cb9..f48ebaecc0 100644 --- a/drivers/builtin_openssl2/ssl/ssl_cert.c +++ b/drivers/builtin_openssl2/ssl/ssl_cert.c @@ -504,6 +504,8 @@ void ssl_cert_free(CERT *c) #ifndef OPENSSL_NO_TLSEXT custom_exts_free(&c->cli_ext); custom_exts_free(&c->srv_ext); + if (c->alpn_proposed) + OPENSSL_free(c->alpn_proposed); #endif OPENSSL_free(c); } @@ -1057,13 +1059,18 @@ static int ssl_add_cert_to_buf(BUF_MEM *buf, unsigned long *l, X509 *x) unsigned char *p; n = i2d_X509(x, NULL); - if (!BUF_MEM_grow_clean(buf, (int)(n + (*l) + 3))) { + if (n < 0 || !BUF_MEM_grow_clean(buf, (int)(n + (*l) + 3))) { SSLerr(SSL_F_SSL_ADD_CERT_TO_BUF, ERR_R_BUF_LIB); return 0; } p = (unsigned char *)&(buf->data[*l]); l2n3(n, p); - i2d_X509(x, &p); + n = i2d_X509(x, &p); + if (n < 0) { + /* Shouldn't happen */ + SSLerr(SSL_F_SSL_ADD_CERT_TO_BUF, ERR_R_BUF_LIB); + return 0; + } *l += n + 3; return 1; |