summarylogtreecommitdiffstats
path: root/openslp-2.0.0-openssl-1.1-fix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'openslp-2.0.0-openssl-1.1-fix.patch')
-rw-r--r--openslp-2.0.0-openssl-1.1-fix.patch25
1 files changed, 25 insertions, 0 deletions
diff --git a/openslp-2.0.0-openssl-1.1-fix.patch b/openslp-2.0.0-openssl-1.1-fix.patch
new file mode 100644
index 000000000000..78dc6c5de796
--- /dev/null
+++ b/openslp-2.0.0-openssl-1.1-fix.patch
@@ -0,0 +1,25 @@
+diff -up openslp-2.0.0/common/slp_crypto.c.orig openslp-2.0.0/common/slp_crypto.c
+--- openslp-2.0.0/common/slp_crypto.c.orig 2012-12-07 21:13:28.000000000 +0100
++++ openslp-2.0.0/common/slp_crypto.c 2017-02-22 11:16:11.620835724 +0100
+@@ -88,11 +88,16 @@ SLPCryptoDSAKey * SLPCryptoDSAKeyDup(SLP
+ result = DSA_new();
+ if (result)
+ {
+- result->p = BN_dup(dsa->p);
+- result->q = BN_dup(dsa->q);
+- result->g = BN_dup(dsa->g);
+- result->priv_key = BN_dup(dsa->priv_key);
+- result->pub_key = BN_dup(dsa->pub_key);
++ const BIGNUM *p, *q, *g;
++ const BIGNUM *priv_key, *pub_key;
++
++ DSA_get0_pqg(dsa, &p, &q, &g);
++ DSA_get0_key(dsa, &pub_key, &priv_key);
++
++ /* would be nice to check return values,
++ * but original code didn't do that either... */
++ DSA_set0_pqg(result, BN_dup(p), BN_dup(q), BN_dup(g));
++ DSA_set0_key(result, BN_dup(pub_key), BN_dup(priv_key));
+ }
+ return result;
+ }