[packages/gnutls] upstream fixes for ktls support

atler atler at pld-linux.org
Fri Jan 28 23:40:49 CET 2022


commit 211a7d4b8f923f649a874fcbedc024aba902cfbb
Author: Jan Palus <atler at pld-linux.org>
Date:   Fri Jan 28 23:40:09 2022 +0100

    upstream fixes for ktls support

 gnutls.spec |  2 ++
 ktls.patch  | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 95 insertions(+)
---
diff --git a/gnutls.spec b/gnutls.spec
index 7fe6ca3..7c6044d 100644
--- a/gnutls.spec
+++ b/gnutls.spec
@@ -26,6 +26,7 @@ Source0:	ftp://ftp.gnutls.org/gcrypt/gnutls/v3.7/%{name}-%{version}.tar.xz
 Patch0:		%{name}-info.patch
 Patch1:		%{name}-link.patch
 Patch2:		%{name}-pl.po-update.patch
+Patch3:		ktls.patch
 URL:		https://www.gnutls.org/
 BuildRequires:	autoconf >= 2.63
 BuildRequires:	automake >= 1:1.12.2
@@ -263,6 +264,7 @@ Wiązania Guile do GnuTLS.
 %patch0 -p1
 %patch1 -p1
 %patch2 -p1
+%patch3 -p1
 
 %{__rm} po/stamp-po
 
diff --git a/ktls.patch b/ktls.patch
new file mode 100644
index 0000000..1e6d514
--- /dev/null
+++ b/ktls.patch
@@ -0,0 +1,93 @@
+From 0a14dc1b7b52abe458bb9c9bd67d89bec7ebb566 Mon Sep 17 00:00:00 2001
+From: Frantisek Krenzelok <krenzelok.frantisek at gmail.com>
+Date: Thu, 27 Jan 2022 13:54:21 +0100
+Subject: [PATCH] KTLS: hotfix
+
+fixed: keys will be set only when both sockets were enabled for ktls
+fixed: session->internals.ktls_enabled left uninitialized for non
+ktls-enabled build
+
+Signed-off-by: Frantisek Krenzelok <krenzelok.frantisek at gmail.com>
+---
+ lib/handshake.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/lib/handshake.c b/lib/handshake.c
+index f65430bbcf..82c895bfde 100644
+--- a/lib/handshake.c
++++ b/lib/handshake.c
+@@ -2910,9 +2910,11 @@ int gnutls_handshake(gnutls_session_t session)
+ 	}
+ 
+ #ifdef ENABLE_KTLS
+-	if (IS_KTLS_ENABLED(session, GNUTLS_KTLS_DUPLEX)) {
++	if (IS_KTLS_ENABLED(session, GNUTLS_KTLS_RECV) || IS_KTLS_ENABLED(session, GNUTLS_KTLS_SEND)) {
+ 		_gnutls_ktls_set_keys(session);
+ 	}
++#else
++	session->internals.ktls_enabled = 0;
+ #endif
+ 
+ 	return 0;
+-- 
+GitLab
+
+From 4828e3923486de2725dc73bf6e6a2db57f94945f Mon Sep 17 00:00:00 2001
+From: Jan Palus <jpalus at fastmail.com>
+Date: Fri, 28 Jan 2022 11:07:02 +0100
+Subject: [PATCH] ktls: fix _gnutls_ktls_send_control_msg return value
+
+always returned 0 on success while contract mandates to return number of
+bytes sent
+
+Fixes #1314
+
+Signed-off-by: Jan Palus <jpalus at fastmail.com>
+---
+ lib/system/ktls.c | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/lib/system/ktls.c b/lib/system/ktls.c
+index 03c94f6f80..7e3cb875ed 100644
+--- a/lib/system/ktls.c
++++ b/lib/system/ktls.c
+@@ -267,12 +267,13 @@ int _gnutls_ktls_send_control_msg(gnutls_session_t session,
+ 	const char *buf = data;
+ 	ssize_t ret;
+ 	int sockin, sockout;
++	size_t data_to_send = data_size;
+ 
+ 	assert (session != NULL);
+ 
+ 	gnutls_transport_get_int2(session, &sockin, &sockout);
+ 
+-	while (data_size > 0) {
++	while (data_to_send > 0) {
+ 		char cmsg[CMSG_SPACE(sizeof (unsigned char))];
+ 		struct msghdr msg = { 0 };
+ 		struct iovec msg_iov;   /* Vector of data to send/receive into. */
+@@ -291,7 +292,7 @@ int _gnutls_ktls_send_control_msg(gnutls_session_t session,
+ 		msg.msg_controllen = hdr->cmsg_len;
+ 
+ 		msg_iov.iov_base = (void *)buf;
+-		msg_iov.iov_len = data_size;
++		msg_iov.iov_len = data_to_send;
+ 
+ 		msg.msg_iov = &msg_iov;
+ 		msg.msg_iovlen = 1;
+@@ -310,10 +311,10 @@ int _gnutls_ktls_send_control_msg(gnutls_session_t session,
+ 		}
+ 
+ 		buf += ret;
+-		data_size -= ret;
++		data_to_send -= ret;
+ 	}
+ 
+-	return 0;
++	return data_size;
+ }
+ 
+ int _gnutls_ktls_recv_control_msg(gnutls_session_t session,
+-- 
+GitLab
+
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/gnutls.git/commitdiff/211a7d4b8f923f649a874fcbedc024aba902cfbb



More information about the pld-cvs-commit mailing list