diff options
Diffstat (limited to 'main/openssl/crypto/asn1/tasn_enc.c')
-rw-r--r-- | main/openssl/crypto/asn1/tasn_enc.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/main/openssl/crypto/asn1/tasn_enc.c b/main/openssl/crypto/asn1/tasn_enc.c index 936ad1f7..1390e5e6 100644 --- a/main/openssl/crypto/asn1/tasn_enc.c +++ b/main/openssl/crypto/asn1/tasn_enc.c @@ -453,9 +453,14 @@ static int asn1_set_seq_out(STACK_OF(ASN1_VALUE) *sk, unsigned char **out, { derlst = OPENSSL_malloc(sk_ASN1_VALUE_num(sk) * sizeof(*derlst)); + if (!derlst) + return 0; tmpdat = OPENSSL_malloc(skcontlen); - if (!derlst || !tmpdat) + if (!tmpdat) + { + OPENSSL_free(derlst); return 0; + } } } /* If not sorting just output each item */ |