summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/pkcs7/pk7_attr.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/lib/libcrypto/pkcs7/pk7_attr.c b/src/lib/libcrypto/pkcs7/pk7_attr.c
index 9a822eaecd..ceaba9138d 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.19 2025/07/31 02:02:35 tb Exp $ */ 1/* $OpenBSD: pk7_attr.c,v 1.20 2025/07/31 02:10:55 tb 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 */
@@ -108,14 +108,17 @@ PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si)
108{ 108{
109 ASN1_TYPE *cap; 109 ASN1_TYPE *cap;
110 const unsigned char *p; 110 const unsigned char *p;
111 int len;
111 112
112 cap = PKCS7_get_signed_attribute(si, NID_SMIMECapabilities); 113 if ((cap = PKCS7_get_signed_attribute(si, NID_SMIMECapabilities)) == NULL)
113 if (!cap || (cap->type != V_ASN1_SEQUENCE))
114 return NULL; 114 return NULL;
115 if (cap->type != V_ASN1_SEQUENCE)
116 return NULL;
117
115 p = cap->value.sequence->data; 118 p = cap->value.sequence->data;
116 return (STACK_OF(X509_ALGOR) *) 119 len = cap->value.sequence->length;
117 ASN1_item_d2i(NULL, &p, cap->value.sequence->length, 120
118 &X509_ALGORS_it); 121 return d2i_X509_ALGORS(NULL, &p, len);
119} 122}
120LCRYPTO_ALIAS(PKCS7_get_smimecap); 123LCRYPTO_ALIAS(PKCS7_get_smimecap);
121 124