--- /dev/null
+--- conserver-8.1.18/conserver/main.c~ 2018-09-20 10:14:38.000000000 +0200
++++ conserver-8.1.18/conserver/main.c 2018-09-20 10:17:58.968897256 +0200
+@@ -108,12 +108,13 @@ GetDH512()
+ 0x02,
+ };
+ DH *dh;
++ BIGNUM *dhp_bn, *dhg_bn;
+
+ if ((dh = DH_new()) == NULL)
+ return (NULL);
+- dh->p = BN_bin2bn(dh512_p, sizeof(dh512_p), NULL);
+- dh->g = BN_bin2bn(dh512_g, sizeof(dh512_g), NULL);
+- if ((dh->p == NULL) || (dh->g == NULL)) {
++ dhp_bn = BN_bin2bn(dh512_p, sizeof(dh512_p), NULL);
++ dhg_bn = BN_bin2bn(dh512_g, sizeof(dh512_g), NULL);
++ if (dhp_bn == NULL || dhg_bn == NULL || !DH_set0_pqg(dh, dhp_bn, NULL, dhg_bn)) {
+ DH_free(dh);
+ return (NULL);
+ }
+@@ -147,12 +147,13 @@ GetDH1024()
+ 0x02,
+ };
+ DH *dh;
++ BIGNUM *dhp_bn, *dhg_bn;
+
+ if ((dh = DH_new()) == NULL)
+ return (NULL);
+- dh->p = BN_bin2bn(dh1024_p, sizeof(dh1024_p), NULL);
+- dh->g = BN_bin2bn(dh1024_g, sizeof(dh1024_g), NULL);
+- if ((dh->p == NULL) || (dh->g == NULL)) {
++ dhp_bn = BN_bin2bn(dh1024_p, sizeof(dh1024_p), NULL);
++ dhg_bn = BN_bin2bn(dh1024_g, sizeof(dh1024_g), NULL);
++ if (dhp_bn == NULL || dhg_bn == NULL || !DH_set0_pqg(dh, dhp_bn, NULL, dhg_bn)) {
+ DH_free(dh);
+ return (NULL);
+ }
+@@ -198,12 +199,13 @@ GetDH2048()
+ 0x02,
+ };
+ DH *dh;
++ BIGNUM *dhp_bn, *dhg_bn;
+
+ if ((dh = DH_new()) == NULL)
+ return (NULL);
+- dh->p = BN_bin2bn(dh2048_p, sizeof(dh2048_p), NULL);
+- dh->g = BN_bin2bn(dh2048_g, sizeof(dh2048_g), NULL);
+- if ((dh->p == NULL) || (dh->g == NULL)) {
++ dhp_bn = BN_bin2bn(dh2048_p, sizeof(dh2048_p), NULL);
++ dhg_bn = BN_bin2bn(dh2048_g, sizeof(dh2048_g), NULL);
++ if (dhp_bn == NULL || dhg_bn == NULL || !DH_set0_pqg(dh, dhp_bn, NULL, dhg_bn)) {
+ DH_free(dh);
+ return (NULL);
+ }
+@@ -275,12 +277,13 @@ GetDH4096()
+ 0x02,
+ };
+ DH *dh;
++ BIGNUM *dhp_bn, *dhg_bn;
+
+ if ((dh = DH_new()) == NULL)
+ return (NULL);
+- dh->p = BN_bin2bn(dh4096_p, sizeof(dh4096_p), NULL);
+- dh->g = BN_bin2bn(dh4096_g, sizeof(dh4096_g), NULL);
+- if ((dh->p == NULL) || (dh->g == NULL)) {
++ dhp_bn = BN_bin2bn(dh4096_p, sizeof(dh4096_p), NULL);
++ dhg_bn = BN_bin2bn(dh4096_g, sizeof(dh4096_g), NULL);
++ if (dhp_bn == NULL || dhg_bn == NULL || !DH_set0_pqg(dh, dhp_bn, NULL, dhg_bn)) {
+ DH_free(dh);
+ return (NULL);
+ }