]>
Commit | Line | Data |
---|---|---|
211a7d4b JP |
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 |