[exim-cvs] OpenSSL: more info on accept zero-error

Startseite
Nachricht löschen
Nachricht beantworten
Autor: Exim Git Commits Mailing List
Datum:  
To: exim-cvs
Betreff: [exim-cvs] OpenSSL: more info on accept zero-error
Gitweb: https://git.exim.org/exim.git/commitdiff/4f10c76912b0ac78397ea157306460c20f30689a
Commit:     4f10c76912b0ac78397ea157306460c20f30689a
Parent:     a39e8a8288547a5299136b9e594075d7a19a2d81
Author:     Jeremy Harris <jgh146exb@???>
AuthorDate: Sun Jun 7 16:38:28 2020 +0100
Committer:  Jeremy Harris <jgh146exb@???>
CommitDate: Sun Jun 7 16:38:28 2020 +0100


    OpenSSL: more info on accept zero-error
---
 src/src/tls-openssl.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)


diff --git a/src/src/tls-openssl.c b/src/src/tls-openssl.c
index a1d299b..3d0e84f 100644
--- a/src/src/tls-openssl.c
+++ b/src/src/tls-openssl.c
@@ -2738,6 +2738,7 @@ SSL_set_accept_state(server_ssl);

DEBUG(D_tls) debug_printf("Calling SSL_accept\n");

+ERR_clear_error();
 sigalrm_seen = FALSE;
 if (smtp_receive_timeout > 0) ALARM(smtp_receive_timeout);
 rc = SSL_accept(server_ssl);
@@ -2787,7 +2788,10 @@ if (rc <= 0)
       }
     DEBUG(D_tls) debug_printf(" - syscall %s\n", strerror(errno));
     }
-      (void) tls_error(US"SSL_accept", NULL, sigalrm_seen ? US"timed out" : NULL, errstr);
+      (void) tls_error(US"SSL_accept", NULL,
+              sigalrm_seen ? US"timed out"
+              : ERR_peek_error() ? NULL : string_sprintf("ret %d", error),
+              errstr);
       return FAIL;
     }
   }