]> git.pld-linux.org Git - packages/gnutls.git/blob - ktls.patch
1e6d51476454544ac5355f4660f3b1096f09e946
[packages/gnutls.git] / ktls.patch
1 From 0a14dc1b7b52abe458bb9c9bd67d89bec7ebb566 Mon Sep 17 00:00:00 2001
2 From: Frantisek Krenzelok <krenzelok.frantisek@gmail.com>
3 Date: Thu, 27 Jan 2022 13:54:21 +0100
4 Subject: [PATCH] KTLS: hotfix
5
6 fixed: keys will be set only when both sockets were enabled for ktls
7 fixed: session->internals.ktls_enabled left uninitialized for non
8 ktls-enabled build
9
10 Signed-off-by: Frantisek Krenzelok <krenzelok.frantisek@gmail.com>
11 ---
12  lib/handshake.c | 4 +++-
13  1 file changed, 3 insertions(+), 1 deletion(-)
14
15 diff --git a/lib/handshake.c b/lib/handshake.c
16 index f65430bbcf..82c895bfde 100644
17 --- a/lib/handshake.c
18 +++ b/lib/handshake.c
19 @@ -2910,9 +2910,11 @@ int gnutls_handshake(gnutls_session_t session)
20         }
21  
22  #ifdef ENABLE_KTLS
23 -       if (IS_KTLS_ENABLED(session, GNUTLS_KTLS_DUPLEX)) {
24 +       if (IS_KTLS_ENABLED(session, GNUTLS_KTLS_RECV) || IS_KTLS_ENABLED(session, GNUTLS_KTLS_SEND)) {
25                 _gnutls_ktls_set_keys(session);
26         }
27 +#else
28 +       session->internals.ktls_enabled = 0;
29  #endif
30  
31         return 0;
32 -- 
33 GitLab
34
35 From 4828e3923486de2725dc73bf6e6a2db57f94945f Mon Sep 17 00:00:00 2001
36 From: Jan Palus <jpalus@fastmail.com>
37 Date: Fri, 28 Jan 2022 11:07:02 +0100
38 Subject: [PATCH] ktls: fix _gnutls_ktls_send_control_msg return value
39
40 always returned 0 on success while contract mandates to return number of
41 bytes sent
42
43 Fixes #1314
44
45 Signed-off-by: Jan Palus <jpalus@fastmail.com>
46 ---
47  lib/system/ktls.c | 9 +++++----
48  1 file changed, 5 insertions(+), 4 deletions(-)
49
50 diff --git a/lib/system/ktls.c b/lib/system/ktls.c
51 index 03c94f6f80..7e3cb875ed 100644
52 --- a/lib/system/ktls.c
53 +++ b/lib/system/ktls.c
54 @@ -267,12 +267,13 @@ int _gnutls_ktls_send_control_msg(gnutls_session_t session,
55         const char *buf = data;
56         ssize_t ret;
57         int sockin, sockout;
58 +       size_t data_to_send = data_size;
59  
60         assert (session != NULL);
61  
62         gnutls_transport_get_int2(session, &sockin, &sockout);
63  
64 -       while (data_size > 0) {
65 +       while (data_to_send > 0) {
66                 char cmsg[CMSG_SPACE(sizeof (unsigned char))];
67                 struct msghdr msg = { 0 };
68                 struct iovec msg_iov;   /* Vector of data to send/receive into. */
69 @@ -291,7 +292,7 @@ int _gnutls_ktls_send_control_msg(gnutls_session_t session,
70                 msg.msg_controllen = hdr->cmsg_len;
71  
72                 msg_iov.iov_base = (void *)buf;
73 -               msg_iov.iov_len = data_size;
74 +               msg_iov.iov_len = data_to_send;
75  
76                 msg.msg_iov = &msg_iov;
77                 msg.msg_iovlen = 1;
78 @@ -310,10 +311,10 @@ int _gnutls_ktls_send_control_msg(gnutls_session_t session,
79                 }
80  
81                 buf += ret;
82 -               data_size -= ret;
83 +               data_to_send -= ret;
84         }
85  
86 -       return 0;
87 +       return data_size;
88  }
89  
90  int _gnutls_ktls_recv_control_msg(gnutls_session_t session,
91 -- 
92 GitLab
93
This page took 0.02192 seconds and 2 git commands to generate.