File: 0002-ftp-ssl-use-get-set-session-instead-of-copy-id.patch

package info (click to toggle)
netkit-ftp-ssl 0.17.34%2Breally0.17-1
  • links: PTS
  • area: main
  • in suites: bookworm
  • size: 2,724 kB
  • sloc: ansic: 6,606; makefile: 36; sh: 13
file content (44 lines) | stat: -rw-r--r-- 1,350 bytes parent folder | download | duplicates (3)
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
From d228c9e24e78047afdd04fcc9e335551fea87251 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Date: Sat, 11 Nov 2017 11:11:55 +0000
Subject: [PATCH 2/2] ftp-ssl: use get+set session instead of copy id

This does mostly the same thing but may be more obvious, maybe not.

Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
---
 ftp/ftp.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

--- a/ftp/ftp.c
+++ b/ftp/ftp.c
@@ -94,6 +94,7 @@
 static int ptflag = 0;
 static int ptabflg = 0;
 #ifdef USE_SSL
+static SSL_SESSION *ssl_data_session;
 int             ssl_available=1;
 static int	pdata = -1;
 static int
@@ -1677,7 +1678,8 @@
 	     * this quick assuming Eric has this going
 	     * okay! ;-)
 	     */
-	    SSL_copy_session_id(ssl_data_con,ssl_con);
+	    if (ssl_data_session)
+		    SSL_set_session(ssl_data_con, ssl_data_session);
 
 	    /* we are doing I/O and not using select so 
 	     * it is "safe" to read ahead
@@ -2279,6 +2281,11 @@
 		    fprintf(stderr, "Data connection security level refused.\n");
 		    return ERROR;
 		}
+		if (ssl_encrypt_data) {
+			SSL_SESSION_free(ssl_data_session);
+			ssl_data_session = SSL_get1_session(ssl_con);
+		}
+
 		if (verbose && use_tls && ssl_encrypt_data)
 		    fprintf(stderr, "[Encrypted data transfer.]\n");
 	    }