diff options
| author | miod <> | 2014-10-28 05:46:56 +0000 |
|---|---|---|
| committer | miod <> | 2014-10-28 05:46:56 +0000 |
| commit | 794dcf073b734d649d7b5d30916d7a3ae919b66e (patch) | |
| tree | e5031b50fe250a2c5c8752bd1c08d24591108740 /src/lib/libcrypto/pkcs7 | |
| parent | 0f87e7002d4db878c14eb1e49fda230504da9b99 (diff) | |
| download | openbsd-794dcf073b734d649d7b5d30916d7a3ae919b66e.tar.gz openbsd-794dcf073b734d649d7b5d30916d7a3ae919b66e.tar.bz2 openbsd-794dcf073b734d649d7b5d30916d7a3ae919b66e.zip | |
Check the result of sk_*_push() operations for failure.
ok doug@ jsing@
Diffstat (limited to 'src/lib/libcrypto/pkcs7')
| -rw-r--r-- | src/lib/libcrypto/pkcs7/pk7_attr.c | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/src/lib/libcrypto/pkcs7/pk7_attr.c b/src/lib/libcrypto/pkcs7/pk7_attr.c index 2f4d5089f5..554a47673b 100644 --- a/src/lib/libcrypto/pkcs7/pk7_attr.c +++ b/src/lib/libcrypto/pkcs7/pk7_attr.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: pk7_attr.c,v 1.9 2014/06/29 17:05:36 jsing Exp $ */ | 1 | /* $OpenBSD: pk7_attr.c,v 1.10 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 2001. | 3 | * project 2001. |
| 4 | */ | 4 | */ |
| @@ -107,29 +107,29 @@ PKCS7_simple_smimecap(STACK_OF(X509_ALGOR) *sk, int nid, int arg) | |||
| 107 | return 0; | 107 | return 0; |
| 108 | } | 108 | } |
| 109 | ASN1_OBJECT_free(alg->algorithm); | 109 | ASN1_OBJECT_free(alg->algorithm); |
| 110 | alg->algorithm = OBJ_nid2obj (nid); | 110 | alg->algorithm = OBJ_nid2obj(nid); |
| 111 | if (arg > 0) { | 111 | if (arg > 0) { |
| 112 | ASN1_INTEGER *nbit; | 112 | ASN1_INTEGER *nbit; |
| 113 | if (!(alg->parameter = ASN1_TYPE_new())) { | 113 | |
| 114 | PKCS7err(PKCS7_F_PKCS7_SIMPLE_SMIMECAP, | 114 | if (!(alg->parameter = ASN1_TYPE_new())) |
| 115 | ERR_R_MALLOC_FAILURE); | 115 | goto err; |
| 116 | return 0; | 116 | if (!(nbit = ASN1_INTEGER_new())) |
| 117 | } | 117 | goto err; |
| 118 | if (!(nbit = ASN1_INTEGER_new())) { | 118 | if (!ASN1_INTEGER_set(nbit, arg)) { |
| 119 | PKCS7err(PKCS7_F_PKCS7_SIMPLE_SMIMECAP, | 119 | ASN1_INTEGER_free(nbit); |
| 120 | ERR_R_MALLOC_FAILURE); | 120 | goto err; |
| 121 | return 0; | ||
| 122 | } | ||
| 123 | if (!ASN1_INTEGER_set (nbit, arg)) { | ||
| 124 | PKCS7err(PKCS7_F_PKCS7_SIMPLE_SMIMECAP, | ||
| 125 | ERR_R_MALLOC_FAILURE); | ||
| 126 | return 0; | ||
| 127 | } | 121 | } |
| 128 | alg->parameter->value.integer = nbit; | 122 | alg->parameter->value.integer = nbit; |
| 129 | alg->parameter->type = V_ASN1_INTEGER; | 123 | alg->parameter->type = V_ASN1_INTEGER; |
| 130 | } | 124 | } |
| 131 | sk_X509_ALGOR_push (sk, alg); | 125 | if (sk_X509_ALGOR_push(sk, alg) == 0) |
| 126 | goto err; | ||
| 132 | return 1; | 127 | return 1; |
| 128 | |||
| 129 | err: | ||
| 130 | PKCS7err(PKCS7_F_PKCS7_SIMPLE_SMIMECAP, ERR_R_MALLOC_FAILURE); | ||
| 131 | X509_ALGOR_free(alg); | ||
| 132 | return 0; | ||
| 133 | } | 133 | } |
| 134 | 134 | ||
| 135 | int | 135 | int |
