Add checks on sk_TYPE_push() returned value
[oweals/openssl.git] / crypto / pkcs7 / pk7_attr.c
index 5f7167048eada3be475cf7bf1408fd0e95523ea5..a96f41e1b9be4d49ddb26939d294cb8a55102574 100644 (file)
@@ -74,7 +74,11 @@ int PKCS7_simple_smimecap(STACK_OF(X509_ALGOR) *sk, int nid, int arg)
         alg->parameter->value.integer = nbit;
         alg->parameter->type = V_ASN1_INTEGER;
     }
-    sk_X509_ALGOR_push(sk, alg);
+    if (!sk_X509_ALGOR_push(sk, alg)) {
+        PKCS7err(PKCS7_F_PKCS7_SIMPLE_SMIMECAP, ERR_R_MALLOC_FAILURE);
+        X509_ALGOR_free(alg);
+        return 0;
+    }
     return 1;
 }