diff --git a/crypto/ts/ts_lib.c b/crypto/ts/ts_lib.c index ca510267fc823c7e856a755714d50a9e717dc35e..c8f41f6fd017cebe341a88ac3d6bce702f5da728 100644 --- a/crypto/ts/ts_lib.c +++ b/crypto/ts/ts_lib.c @@ -69,19 +69,20 @@ int TS_ASN1_INTEGER_print_bio(BIO *bio, const ASN1_INTEGER *num) { - BIGNUM num_bn; + BIGNUM *num_bn; int result = 0; char *hex; - BN_init(&num_bn); - ASN1_INTEGER_to_BN(num, &num_bn); - if ((hex = BN_bn2hex(&num_bn))) + num_bn = BN_new(); + if(!num_bn) return -1; + ASN1_INTEGER_to_BN(num, num_bn); + if ((hex = BN_bn2hex(num_bn))) { result = BIO_write(bio, "0x", 2) > 0; result = result && BIO_write(bio, hex, strlen(hex)) > 0; OPENSSL_free(hex); } - BN_free(&num_bn); + BN_free(num_bn); return result; }