summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wendler <polynomial-c@gentoo.org>2018-10-10 13:12:13 +0200
committerLars Wendler <polynomial-c@gentoo.org>2018-10-10 13:12:29 +0200
commit6e6625164350305d29cb53417ed1a6c444b9cb71 (patch)
tree808070c6bcf2c89633b74f6ee4ec423274bb39a6 /net-libs/libircclient
parentwww-plugins/adobe-flash: Old. (diff)
downloadgentoo-6e6625164350305d29cb53417ed1a6c444b9cb71.tar.gz
gentoo-6e6625164350305d29cb53417ed1a6c444b9cb71.tar.bz2
gentoo-6e6625164350305d29cb53417ed1a6c444b9cb71.zip
net-libs/libircclient: Added two openssl fixes from upstream.
Signed-off-by: Lars Wendler <polynomial-c@gentoo.org> Package-Manager: Portage-2.3.51, Repoman-2.3.11
Diffstat (limited to 'net-libs/libircclient')
-rw-r--r--net-libs/libircclient/files/libircclient-1.10-openssl.patch38
-rw-r--r--net-libs/libircclient/libircclient-1.10.ebuild3
2 files changed, 41 insertions, 0 deletions
diff --git a/net-libs/libircclient/files/libircclient-1.10-openssl.patch b/net-libs/libircclient/files/libircclient-1.10-openssl.patch
new file mode 100644
index 000000000000..b488f7f626c7
--- /dev/null
+++ b/net-libs/libircclient/files/libircclient-1.10-openssl.patch
@@ -0,0 +1,38 @@
+https://sourceforge.net/p/libircclient/code/141/
+https://sourceforge.net/p/libircclient/code/142/
+
+--- libircclient-1.10/src/ssl.c
++++ libircclient-1.10/src/ssl.c
+@@ -114,26 +114,23 @@
+ #if OPENSSL_VERSION_NUMBER < 0x10100000L
+ SSL_library_init();
+ #else
+- OPENSSL_init_ssl(0, NULL);
++ if ( OPENSSL_init_ssl(0, NULL) == 0 )
++ return LIBIRC_ERR_SSL_INIT_FAILED;
+ #endif
+
+ if ( RAND_status() == 0 )
+ return LIBIRC_ERR_SSL_INIT_FAILED;
+
+ // Create an SSL context; currently a single context is used for all connections
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ ssl_context = SSL_CTX_new( SSLv23_method() );
++#else
++ ssl_context = SSL_CTX_new( TLS_client_method() );
++#endif
+
+ if ( !ssl_context )
+ return LIBIRC_ERR_SSL_INIT_FAILED;
+
+- // Disable SSLv2 as it is unsecure
+- if ( (SSL_CTX_set_options( ssl_context, SSL_OP_NO_SSLv2) & SSL_OP_NO_SSLv2) == 0 )
+- return LIBIRC_ERR_SSL_INIT_FAILED;
+-
+- // Enable only strong ciphers
+- if ( SSL_CTX_set_cipher_list( ssl_context, "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH" ) != 1 )
+- return LIBIRC_ERR_SSL_INIT_FAILED;
+-
+ // Set the verification
+ if ( session->options & LIBIRC_OPTION_SSL_NO_VERIFY )
+ SSL_CTX_set_verify( ssl_context, SSL_VERIFY_NONE, 0 );
diff --git a/net-libs/libircclient/libircclient-1.10.ebuild b/net-libs/libircclient/libircclient-1.10.ebuild
index d25e3c79b6ef..940b5f0a3967 100644
--- a/net-libs/libircclient/libircclient-1.10.ebuild
+++ b/net-libs/libircclient/libircclient-1.10.ebuild
@@ -21,6 +21,9 @@ PATCHES=(
"${FILESDIR}"/${PN}-1.10-shared.patch
"${FILESDIR}"/${PN}-1.8-static.patch
"${FILESDIR}"/${PN}-1.8-include.patch
+
+ # upstream patches (can usually be removed with next version bump)
+ "${FILESDIR}"/${PN}-1.10-openssl.patch
)
src_prepare() {