summaryrefslogtreecommitdiff
blob: ee7cf6878d989fd70fa9007172740ce55513b818 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
diff -ru pdns-recursor-4.0.6.orig/opensslsigners.cc pdns-recursor-4.0.6/opensslsigners.cc
--- pdns-recursor-4.0.6.orig/opensslsigners.cc	2017-07-04 17:43:07.000000000 +0200
+++ pdns-recursor-4.0.6/opensslsigners.cc	2017-11-02 18:18:37.489408103 +0100
@@ -474,7 +474,7 @@
   if (iqmp == NULL) {
     RSA_free(key);
     BN_clear_free(dmq1);
-    BN_clear_free(iqmp);
+    BN_clear_free(dmp1);
     throw runtime_error(getName()+" allocation of BIGNUM iqmp failed");
   }
   RSA_set0_crt_params(key, dmp1, dmq1, iqmp);
@@ -562,6 +562,7 @@
   BIGNUM *n = BN_bin2bn((unsigned char*)modulus.c_str(), modulus.length(), NULL);
   if (!n) {
     RSA_free(key);
+    BN_clear_free(e);
     throw runtime_error(getName()+" error loading n value of public key");
   }
 
@@ -866,6 +867,7 @@
 
   int ret = EC_POINT_oct2point(d_ecgroup, pub_key, (unsigned char*) ecdsaPoint.c_str(), ecdsaPoint.length(), d_ctx);
   if (ret != 1) {
+    EC_POINT_free(pub_key);
     throw runtime_error(getName()+" reading ECP point from binary failed");
   }