summarylogtreecommitdiffstats
path: root/neverbleed-fix-when-lacking-engines.patch
blob: 4727ded20f139afe14c2f3fed3c91777c03fd140 (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
29
30
diff --git a/deps/neverbleed/neverbleed.c b/deps/neverbleed/neverbleed.c
index 3cc1b1f02..d01006a9f 100644
--- a/deps/neverbleed/neverbleed.c
+++ b/deps/neverbleed/neverbleed.c
@@ -2220,6 +2220,7 @@ int neverbleed_init(neverbleed_t *nb, char *errbuf)
         EC_KEY_METHOD_set_sign(ecdsa_method, ecdsa_sign_proxy, NULL, NULL);
 #endif
 
+#ifndef OPENSSL_NO_ENGINE
         if ((nb->engine = ENGINE_new()) == NULL || !ENGINE_set_id(nb->engine, "neverbleed") ||
             !ENGINE_set_name(nb->engine, "privilege separation software engine") || !ENGINE_set_RSA(nb->engine, rsa_method)
 #ifdef NEVERBLEED_ECDSA
@@ -2230,6 +2231,7 @@ int neverbleed_init(neverbleed_t *nb, char *errbuf)
             goto Fail;
         }
         ENGINE_add(nb->engine);
+#endif
     }
 #endif
 
@@ -2250,7 +2252,9 @@ Fail:
     if (listen_fd != -1)
         close(listen_fd);
     if (nb->engine != NULL) {
+#ifndef OPENSSL_NO_ENGINE
         ENGINE_free(nb->engine);
+#endif
         nb->engine = NULL;
     }
     return -1;