summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/asn1/a_enum.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/lib/libcrypto/asn1/a_enum.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/lib/libcrypto/asn1/a_enum.c b/src/lib/libcrypto/asn1/a_enum.c
index 8a315fa371..ad8f0ffd1a 100644
--- a/src/lib/libcrypto/asn1/a_enum.c
+++ b/src/lib/libcrypto/asn1/a_enum.c
@@ -151,7 +151,17 @@ ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(BIGNUM *bn, ASN1_ENUMERATED *ai)
151 else ret->type=V_ASN1_ENUMERATED; 151 else ret->type=V_ASN1_ENUMERATED;
152 j=BN_num_bits(bn); 152 j=BN_num_bits(bn);
153 len=((j == 0)?0:((j/8)+1)); 153 len=((j == 0)?0:((j/8)+1));
154 ret->data=(unsigned char *)OPENSSL_malloc(len+4); 154 if (ret->length < len+4)
155 {
156 unsigned char *new_data=OPENSSL_realloc(ret->data, len+4);
157 if (!new_data)
158 {
159 ASN1err(ASN1_F_BN_TO_ASN1_INTEGER,ERR_R_MALLOC_FAILURE);
160 goto err;
161 }
162 ret->data=new_data;
163 }
164
155 ret->length=BN_bn2bin(bn,ret->data); 165 ret->length=BN_bn2bin(bn,ret->data);
156 return(ret); 166 return(ret);
157err: 167err: