summaryrefslogtreecommitdiffstats
path: root/crypto/openssl/ssl/s2_srvr.c
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2013-02-13 23:07:20 +0000
committerjkim <jkim@FreeBSD.org>2013-02-13 23:07:20 +0000
commit754bee57763650b50ece26c6f026c1795b4132d8 (patch)
tree265bba8e82f9a88ce59fc212bc8bf5e01c270b16 /crypto/openssl/ssl/s2_srvr.c
parenta6d6a2787087806f8a0ae6290d1df47c9471a269 (diff)
parent9069337c8384d04bea914cdfac40b533e60cade6 (diff)
downloadFreeBSD-src-754bee57763650b50ece26c6f026c1795b4132d8.zip
FreeBSD-src-754bee57763650b50ece26c6f026c1795b4132d8.tar.gz
Merge OpenSSL 1.0.1e.
Approved by: secteam (simon), benl (silence)
Diffstat (limited to 'crypto/openssl/ssl/s2_srvr.c')
-rw-r--r--crypto/openssl/ssl/s2_srvr.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/crypto/openssl/ssl/s2_srvr.c b/crypto/openssl/ssl/s2_srvr.c
index bc885e8..2cba426 100644
--- a/crypto/openssl/ssl/s2_srvr.c
+++ b/crypto/openssl/ssl/s2_srvr.c
@@ -1059,10 +1059,12 @@ static int request_certificate(SSL *s)
EVP_PKEY *pkey=NULL;
EVP_MD_CTX_init(&ctx);
- EVP_VerifyInit_ex(&ctx,s->ctx->rsa_md5, NULL);
- EVP_VerifyUpdate(&ctx,s->s2->key_material,
- s->s2->key_material_length);
- EVP_VerifyUpdate(&ctx,ccd,SSL2_MIN_CERT_CHALLENGE_LENGTH);
+ if (!EVP_VerifyInit_ex(&ctx,s->ctx->rsa_md5, NULL)
+ || !EVP_VerifyUpdate(&ctx,s->s2->key_material,
+ s->s2->key_material_length)
+ || !EVP_VerifyUpdate(&ctx,ccd,
+ SSL2_MIN_CERT_CHALLENGE_LENGTH))
+ goto msg_end;
i=i2d_X509(s->cert->pkeys[SSL_PKEY_RSA_ENC].x509,NULL);
buf2=OPENSSL_malloc((unsigned int)i);
@@ -1073,7 +1075,11 @@ static int request_certificate(SSL *s)
}
p2=buf2;
i=i2d_X509(s->cert->pkeys[SSL_PKEY_RSA_ENC].x509,&p2);
- EVP_VerifyUpdate(&ctx,buf2,(unsigned int)i);
+ if (!EVP_VerifyUpdate(&ctx,buf2,(unsigned int)i))
+ {
+ OPENSSL_free(buf2);
+ goto msg_end;
+ }
OPENSSL_free(buf2);
pkey=X509_get_pubkey(x509);
OpenPOWER on IntegriCloud