summaryrefslogtreecommitdiffstats
path: root/source/n/vsftpd/vsftpd-3.0.5-replace-deprecated-openssl-functions.patch
blob: d56373e9900119ab2f6e64dc219957cbc3deac68 (about) (plain) (blame)
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
https://src.fedoraproject.org/rpms/vsftpd/raw/rawhide/f/vsftpd-3.0.5-replace-deprecated-openssl-functions.patch

diff --git a/ssl.c b/ssl.c
--- ssl.c	
+++ ssl.c	
@@ -28,17 +28,17 @@
 #include <openssl/err.h>
 #include <openssl/rand.h>
 #include <openssl/bio.h>
 #include <openssl/bn.h>
 #include <openssl/param_build.h>
 #include <errno.h>
 #include <limits.h>
 
 static char* get_ssl_error();
 static SSL* get_ssl(struct vsf_session* p_sess, int fd);
 static int ssl_session_init(struct vsf_session* p_sess);
 static void setup_bio_callbacks();
 static long bio_callback(
-  BIO* p_bio, int oper, const char* p_arg, int argi, long argl, long retval);
+  BIO* p_bio, int oper, const char* p_arg, size_t len, int argi, long argl, int ret, size_t *processed);
 static int ssl_verify_callback(int verify_ok, X509_STORE_CTX* p_ctx);
 static int ssl_alpn_callback(SSL* p_ssl,
                              const unsigned char** p_out,
@@ -88,7 +88,7 @@
     long options;
     int verify_option = 0;
     SSL_library_init();
-    p_ctx = SSL_CTX_new(SSLv23_server_method());
+    p_ctx = SSL_CTX_new_ex(NULL, NULL, SSLv23_server_method());
     if (p_ctx == NULL)
     {
       die("SSL: could not allocate SSL context");
@@ -180,13 +180,10 @@
       die("SSL: RNG is not seeded");
     }
     {
-      EC_KEY* key = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
-      if (key == NULL)
+      if (!SSL_CTX_set1_groups_list(p_ctx, "P-256"))
       {
         die("SSL: failed to get curve p256");
       }
-      SSL_CTX_set_tmp_ecdh(p_ctx, key);
-      EC_KEY_free(key);
     }
     if (tunable_ssl_request_cert)
     {
@@ -692,17 +689,19 @@
 static void setup_bio_callbacks(SSL* p_ssl)
 {
   BIO* p_bio = SSL_get_rbio(p_ssl);
-  BIO_set_callback(p_bio, bio_callback);
+  BIO_set_callback_ex(p_bio, bio_callback);
   p_bio = SSL_get_wbio(p_ssl);
-  BIO_set_callback(p_bio, bio_callback);
+  BIO_set_callback_ex(p_bio, bio_callback);
 }
 
 static long
 bio_callback(
-  BIO* p_bio, int oper, const char* p_arg, int argi, long argl, long ret)
+  BIO* p_bio, int oper, const char* p_arg, size_t len, int argi, long argl, int ret, size_t *processed)
 {
   int retval = 0;
   int fd = 0;
+  (void) len;
+  (void) processed;
   (void) p_arg;
   (void) argi;
   (void) argl;