summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormiod <>2014-07-01 21:26:27 +0000
committermiod <>2014-07-01 21:26:27 +0000
commitae9d23f02624214dfa3102cd43e55bcff2a8b940 (patch)
tree7e3ad67826625fadba7cbffe3b2c2086333f3157 /src
parent948e49c9c38464c823ba12a3f493cc7f8df7e73f (diff)
downloadopenbsd-ae9d23f02624214dfa3102cd43e55bcff2a8b940.tar.gz
openbsd-ae9d23f02624214dfa3102cd43e55bcff2a8b940.tar.bz2
openbsd-ae9d23f02624214dfa3102cd43e55bcff2a8b940.zip
Avoid a NULL deref in i2d_ECPrivateKey() when an EC_KEY lacks the public key
member (which is perfectly acceptable). From BoringSSL (Adam Langley), commit f71a27920a903c9c36bcb31e68781b17674d3fd2
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/ec/ec_asn1.c4
-rw-r--r--src/lib/libssl/src/crypto/ec/ec_asn1.c4
2 files changed, 4 insertions, 4 deletions
diff --git a/src/lib/libcrypto/ec/ec_asn1.c b/src/lib/libcrypto/ec/ec_asn1.c
index 52f33d8f34..9478e5260a 100644
--- a/src/lib/libcrypto/ec/ec_asn1.c
+++ b/src/lib/libcrypto/ec/ec_asn1.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ec_asn1.c,v 1.7 2014/06/12 15:49:29 deraadt Exp $ */ 1/* $OpenBSD: ec_asn1.c,v 1.8 2014/07/01 21:26:27 miod Exp $ */
2/* 2/*
3 * Written by Nils Larsch for the OpenSSL project. 3 * Written by Nils Larsch for the OpenSSL project.
4 */ 4 */
@@ -1092,7 +1092,7 @@ i2d_ECPrivateKey(EC_KEY * a, unsigned char **out)
1092 goto err; 1092 goto err;
1093 } 1093 }
1094 } 1094 }
1095 if (!(a->enc_flag & EC_PKEY_NO_PUBKEY)) { 1095 if (!(a->enc_flag & EC_PKEY_NO_PUBKEY) && a->pub_key != NULL) {
1096 priv_key->publicKey = M_ASN1_BIT_STRING_new(); 1096 priv_key->publicKey = M_ASN1_BIT_STRING_new();
1097 if (priv_key->publicKey == NULL) { 1097 if (priv_key->publicKey == NULL) {
1098 ECerr(EC_F_I2D_ECPRIVATEKEY, 1098 ECerr(EC_F_I2D_ECPRIVATEKEY,
diff --git a/src/lib/libssl/src/crypto/ec/ec_asn1.c b/src/lib/libssl/src/crypto/ec/ec_asn1.c
index 52f33d8f34..9478e5260a 100644
--- a/src/lib/libssl/src/crypto/ec/ec_asn1.c
+++ b/src/lib/libssl/src/crypto/ec/ec_asn1.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ec_asn1.c,v 1.7 2014/06/12 15:49:29 deraadt Exp $ */ 1/* $OpenBSD: ec_asn1.c,v 1.8 2014/07/01 21:26:27 miod Exp $ */
2/* 2/*
3 * Written by Nils Larsch for the OpenSSL project. 3 * Written by Nils Larsch for the OpenSSL project.
4 */ 4 */
@@ -1092,7 +1092,7 @@ i2d_ECPrivateKey(EC_KEY * a, unsigned char **out)
1092 goto err; 1092 goto err;
1093 } 1093 }
1094 } 1094 }
1095 if (!(a->enc_flag & EC_PKEY_NO_PUBKEY)) { 1095 if (!(a->enc_flag & EC_PKEY_NO_PUBKEY) && a->pub_key != NULL) {
1096 priv_key->publicKey = M_ASN1_BIT_STRING_new(); 1096 priv_key->publicKey = M_ASN1_BIT_STRING_new();
1097 if (priv_key->publicKey == NULL) { 1097 if (priv_key->publicKey == NULL) {
1098 ECerr(EC_F_I2D_ECPRIVATEKEY, 1098 ECerr(EC_F_I2D_ECPRIVATEKEY,