xref: /OK3568_Linux_fs/buildroot/package/heirloom-mailx/0002-fix-libressl-support.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunFrom aad28d30af6c3a74c522dd61943788e908860c84 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Adam Duskett <aduskett@gmail.com>
3*4882a593SmuzhiyunDate: Fri, 4 Aug 2017 07:22:47 -0400
4*4882a593SmuzhiyunSubject: [PATCH] fix libressl support
5*4882a593Smuzhiyun
6*4882a593Smuzhiyunheirloom-mailx has two small issues when compiling against LibreSSL:
7*4882a593Smuzhiyun  - RAND_egd is used (LibreSSL does not support RAND_egd)
8*4882a593Smuzhiyun    Solution: "Guard" the code calling RAND_egd
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun  - SSLv3_client_method function is used (LibreSSL does not support SSLv3)
11*4882a593Smuzhiyun    Solution: "Guard" the code with #ifndef OPENSSL_NO_SSL3
12*4882a593Smuzhiyun
13*4882a593SmuzhiyunSigned-off-by: Adam Duskett <aduskett@gmail.com>
14*4882a593Smuzhiyun---
15*4882a593Smuzhiyun openssl.c | 7 +++++++
16*4882a593Smuzhiyun 1 file changed, 7 insertions(+)
17*4882a593Smuzhiyun
18*4882a593Smuzhiyundiff --git a/openssl.c b/openssl.c
19*4882a593Smuzhiyunindex 44fe4e5..c4a1bb7 100644
20*4882a593Smuzhiyun--- a/openssl.c
21*4882a593Smuzhiyun+++ b/openssl.c
22*4882a593Smuzhiyun@@ -137,11 +137,13 @@ ssl_rand_init(void)
23*4882a593Smuzhiyun
24*4882a593Smuzhiyun 	if ((cp = value("ssl-rand-egd")) != NULL) {
25*4882a593Smuzhiyun 		cp = expand(cp);
26*4882a593Smuzhiyun+#ifndef OPENSSL_NO_EGD
27*4882a593Smuzhiyun 		if (RAND_egd(cp) == -1) {
28*4882a593Smuzhiyun 			fprintf(stderr, catgets(catd, CATSET, 245,
29*4882a593Smuzhiyun 				"entropy daemon at \"%s\" not available\n"),
30*4882a593Smuzhiyun 					cp);
31*4882a593Smuzhiyun 		} else
32*4882a593Smuzhiyun+#endif
33*4882a593Smuzhiyun 			state = 1;
34*4882a593Smuzhiyun 	} else if ((cp = value("ssl-rand-file")) != NULL) {
35*4882a593Smuzhiyun 		cp = expand(cp);
36*4882a593Smuzhiyun@@ -216,10 +218,15 @@ ssl_select_method(const char *uhp)
37*4882a593Smuzhiyun
38*4882a593Smuzhiyun 	cp = ssl_method_string(uhp);
39*4882a593Smuzhiyun 	if (cp != NULL) {
40*4882a593Smuzhiyun+		#ifndef OPENSSL_NO_SSL3
41*4882a593Smuzhiyun 		if (equal(cp, "ssl3"))
42*4882a593Smuzhiyun 			method = SSLv3_client_method();
43*4882a593Smuzhiyun 		else if (equal(cp, "tls1"))
44*4882a593Smuzhiyun 			method = TLSv1_client_method();
45*4882a593Smuzhiyun+		#else
46*4882a593Smuzhiyun+		if (equal(cp, "tls1"))
47*4882a593Smuzhiyun+			method = TLSv1_client_method();
48*4882a593Smuzhiyun+		#endif
49*4882a593Smuzhiyun 		else {
50*4882a593Smuzhiyun 			fprintf(stderr, catgets(catd, CATSET, 244,
51*4882a593Smuzhiyun 					"Invalid SSL method \"%s\"\n"), cp);
52*4882a593Smuzhiyun--
53*4882a593Smuzhiyun2.13.3
54*4882a593Smuzhiyun
55