summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/asn1/a_int.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/lib/libcrypto/asn1/a_int.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/lib/libcrypto/asn1/a_int.c b/src/lib/libcrypto/asn1/a_int.c
index 496704b9a5..edb243c021 100644
--- a/src/lib/libcrypto/asn1/a_int.c
+++ b/src/lib/libcrypto/asn1/a_int.c
@@ -397,7 +397,16 @@ ASN1_INTEGER *BN_to_ASN1_INTEGER(BIGNUM *bn, ASN1_INTEGER *ai)
397 else ret->type=V_ASN1_INTEGER; 397 else ret->type=V_ASN1_INTEGER;
398 j=BN_num_bits(bn); 398 j=BN_num_bits(bn);
399 len=((j == 0)?0:((j/8)+1)); 399 len=((j == 0)?0:((j/8)+1));
400 ret->data=(unsigned char *)OPENSSL_malloc(len+4); 400 if (ret->length < len+4)
401 {
402 unsigned char *new_data=OPENSSL_realloc(ret->data, len+4);
403 if (!new_data)
404 {
405 ASN1err(ASN1_F_BN_TO_ASN1_INTEGER,ERR_R_MALLOC_FAILURE);
406 goto err;
407 }
408 ret->data=new_data;
409 }
401 ret->length=BN_bn2bin(bn,ret->data); 410 ret->length=BN_bn2bin(bn,ret->data);
402 /* Correct zero case */ 411 /* Correct zero case */
403 if(!ret->length) 412 if(!ret->length)