On Mon, May 11, 2020 at 11:43:41AM -0700, Alexander Vasarab wrote:

> May 11 11:23:54 vasaconsulting postfix/smtpd[21870]: warning: TLS
> library problem: error:140E0197:SSL routines:SSL_shutdown:shutdown
> while in init:../ssl/ssl_lib.c:2086:

The patch below avoids spurious SSL_ERROR_SSL indications when some
database library uses OpenSSL for its connections in a manner that
leaves spurious errors on the error queue.  [ Tsk, tsk, the OP was not
using "proxymap" for his Postgres tables. ]

--- src/tls/tls_bio_ops.c
+++ src/tls/tls_bio_ops.c
@@ -194,6 +194,14 @@ int     tls_bio(int fd, int timeout, TLS_SESS_STATE 
*TLScontext,
      * handling any pending network I/O.
      */
     for (;;) {
+       /*
+        * Flush stale data from SSL error queue.  Stale errors can confuse
+        * SSL_get_error(3).  The requirement to flush the error queue before
+        * each I/O operation is documented.  It seems we've been lucky all
+        * these years.
+        */
+       ERR_clear_error();
+
        if (hsfunc)
            status = hsfunc(TLScontext->con);
        else if (rfunc)

-- 
    Viktor.

Reply via email to