summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/evp
diff options
context:
space:
mode:
authormiod <>2014-10-28 05:46:56 +0000
committermiod <>2014-10-28 05:46:56 +0000
commit41c028be1988ad160ef2fa6feca4441bb4bca17d (patch)
treee5031b50fe250a2c5c8752bd1c08d24591108740 /src/lib/libcrypto/evp
parent77608e1e83f23ad41247b5fe52616f87439bb30f (diff)
downloadopenbsd-41c028be1988ad160ef2fa6feca4441bb4bca17d.tar.gz
openbsd-41c028be1988ad160ef2fa6feca4441bb4bca17d.tar.bz2
openbsd-41c028be1988ad160ef2fa6feca4441bb4bca17d.zip
Check the result of sk_*_push() operations for failure.
ok doug@ jsing@
Diffstat (limited to 'src/lib/libcrypto/evp')
-rw-r--r--src/lib/libcrypto/evp/evp_pbe.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/lib/libcrypto/evp/evp_pbe.c b/src/lib/libcrypto/evp/evp_pbe.c
index fcfc43d578..ac593549e5 100644
--- a/src/lib/libcrypto/evp/evp_pbe.c
+++ b/src/lib/libcrypto/evp/evp_pbe.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: evp_pbe.c,v 1.21 2014/07/11 14:16:10 miod Exp $ */ 1/* $OpenBSD: evp_pbe.c,v 1.22 2014/10/28 05:46:56 miod Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 1999. 3 * project 1999.
4 */ 4 */
@@ -130,7 +130,7 @@ EVP_PBE_CipherInit(ASN1_OBJECT *pbe_obj, const char *pass, int passlen,
130 char obj_tmp[80]; 130 char obj_tmp[80];
131 EVPerr(EVP_F_EVP_PBE_CIPHERINIT, EVP_R_UNKNOWN_PBE_ALGORITHM); 131 EVPerr(EVP_F_EVP_PBE_CIPHERINIT, EVP_R_UNKNOWN_PBE_ALGORITHM);
132 if (!pbe_obj) 132 if (!pbe_obj)
133 strlcpy (obj_tmp, "NULL", sizeof obj_tmp); 133 strlcpy(obj_tmp, "NULL", sizeof obj_tmp);
134 else 134 else
135 i2t_ASN1_OBJECT(obj_tmp, sizeof obj_tmp, pbe_obj); 135 i2t_ASN1_OBJECT(obj_tmp, sizeof obj_tmp, pbe_obj);
136 ERR_asprintf_error_data("TYPE=%s", obj_tmp); 136 ERR_asprintf_error_data("TYPE=%s", obj_tmp);
@@ -205,7 +205,7 @@ EVP_PBE_alg_add_type(int pbe_type, int pbe_nid, int cipher_nid, int md_nid,
205 205
206 if (!pbe_algs) 206 if (!pbe_algs)
207 pbe_algs = sk_EVP_PBE_CTL_new(pbe_cmp); 207 pbe_algs = sk_EVP_PBE_CTL_new(pbe_cmp);
208 if (!(pbe_tmp = (EVP_PBE_CTL*) malloc (sizeof(EVP_PBE_CTL)))) { 208 if (!(pbe_tmp = (EVP_PBE_CTL*)malloc(sizeof(EVP_PBE_CTL)))) {
209 EVPerr(EVP_F_EVP_PBE_ALG_ADD_TYPE, ERR_R_MALLOC_FAILURE); 209 EVPerr(EVP_F_EVP_PBE_ALG_ADD_TYPE, ERR_R_MALLOC_FAILURE);
210 return 0; 210 return 0;
211 } 211 }
@@ -215,7 +215,11 @@ EVP_PBE_alg_add_type(int pbe_type, int pbe_nid, int cipher_nid, int md_nid,
215 pbe_tmp->md_nid = md_nid; 215 pbe_tmp->md_nid = md_nid;
216 pbe_tmp->keygen = keygen; 216 pbe_tmp->keygen = keygen;
217 217
218 sk_EVP_PBE_CTL_push (pbe_algs, pbe_tmp); 218 if (sk_EVP_PBE_CTL_push(pbe_algs, pbe_tmp) == 0) {
219 free(pbe_tmp);
220 EVPerr(EVP_F_EVP_PBE_ALG_ADD_TYPE, ERR_R_MALLOC_FAILURE);
221 return 0;
222 }
219 return 1; 223 return 1;
220} 224}
221 225