Line 0
Link Here
|
|
|
1 |
--- mutt_ssl_gnutls.c.orig |
2 |
+++ mutt_ssl_gnutls.c |
3 |
@@ -999,6 +999,7 @@ |
4 |
unsigned int cert_list_size = 0; |
5 |
gnutls_certificate_status certstat; |
6 |
int certerr, i, preauthrc, savedcert, rc = 0; |
7 |
+ int rcpeer; |
8 |
|
9 |
if (gnutls_auth_get_type (state) != GNUTLS_CRD_CERTIFICATE) |
10 |
{ |
11 |
@@ -1024,6 +1025,9 @@ |
12 |
for (i = 0; i < cert_list_size; i++) { |
13 |
rc = tls_check_preauth(&cert_list[i], certstat, conn->account.host, i, |
14 |
&certerr, &savedcert); |
15 |
+ if (i == 0) |
16 |
+ rcpeer = rc; |
17 |
+ |
18 |
preauthrc += rc; |
19 |
|
20 |
if (savedcert) |
21 |
@@ -1049,7 +1053,7 @@ |
22 |
dprint (1, (debugfile, "error trusting certificate %d: %d\n", i, rc)); |
23 |
|
24 |
certstat = tls_verify_peers (state); |
25 |
- if (!certstat) |
26 |
+ if (!certstat && !rcpeer) |
27 |
return 1; |
28 |
} |
29 |
} |