]> git.saurik.com Git - apple/security.git/blobdiff - libsecurity_smime/lib/cmsattr.c
Security-57337.60.2.tar.gz
[apple/security.git] / libsecurity_smime / lib / cmsattr.c
index ba52167bc8a62e82e26bc0f815f6b908858450bc..05d0033b9ef05400ed1ad7f8ab5edde42c357673 100644 (file)
@@ -92,7 +92,8 @@ SecCmsAttributeCreate(PRArenaPool *poolp, SECOidTag oidtag, SecAsn1Item * value,
        if (SECITEM_CopyItem(poolp, copiedvalue, value) != SECSuccess)
            goto loser;
 
-       SecCmsArrayAdd(poolp, (void ***)&(attr->values), (void *)copiedvalue);
+        if (SecCmsArrayAdd(poolp, (void ***)&(attr->values), (void *)copiedvalue) != SECSuccess)
+            goto loser;
     }
 
     attr->encoded = encoded;
@@ -204,7 +205,7 @@ SecCmsAttributeCompareValue(SecCmsAttribute *attr, SecAsn1Item * av)
  * helper function for dynamic template determination of the attribute value
  */
 static const SecAsn1Template *
-cms_attr_choose_attr_value_template(void *src_or_dest, Boolean encoding, const char *buf, void *dest)
+cms_attr_choose_attr_value_template(void *src_or_dest, Boolean encoding, const char *buf, size_t len, void *dest)
 {
     const SecAsn1Template *theTemplate;
     SecCmsAttribute *attribute;
@@ -254,6 +255,7 @@ cms_attr_choose_attr_value_template(void *src_or_dest, Boolean encoding, const c
            theTemplate = SEC_ASN1_GET(kSecAsn1ObjectIDTemplate);
            break;
        case SEC_OID_PKCS9_MESSAGE_DIGEST:
+        case SEC_OID_APPLE_HASH_AGILITY:
            encoded = PR_FALSE;
            theTemplate = SEC_ASN1_GET(kSecAsn1OctetStringTemplate);
            break;