From 55dbbb3546004b2c57e2ac14a45892aacf53b730 Mon Sep 17 00:00:00 2001 From: orignal Date: Wed, 23 Nov 2016 16:30:36 -0500 Subject: [PATCH] fixed memory leak --- Crypto.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Crypto.h b/Crypto.h index b9d25216..ee5f49ca 100644 --- a/Crypto.h +++ b/Crypto.h @@ -302,7 +302,11 @@ inline void DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM **p { *pr = sig->r; *ps = sig->s; } inline int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s) - { sig->r = r; sig->s = s; return 1; } + { + if (sig->r) BN_free (sig->r); + if (sig->s) BN_free (sig->s); + sig->r = r; sig->s = s; return 1; + } inline void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps) { *pr = sig->r; *ps = sig->s; }