From ea837d79f91f481d7b07ea7a985b35c24e9dcc79 Mon Sep 17 00:00:00 2001 From: Matt Caswell Date: Wed, 4 May 2016 09:12:27 +0100 Subject: Remove stale errors from early connection attempts in a client The init_client() function in the apps sets up the client connection. It may try multiple addresses until it finds one that works. We should clear the error queue if we eventually get a successful connection because otherwise we get stale errors hanging around. This can cause problems in subsequent calls to SSL_get_error(), i.e. non-fatal NBIO events appear as fatal. Reviewed-by: Richard Levitte --- apps/s_socket.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'apps') diff --git a/apps/s_socket.c b/apps/s_socket.c index 465321754c..6d77d8215b 100644 --- a/apps/s_socket.c +++ b/apps/s_socket.c @@ -195,6 +195,8 @@ int init_client(int *sock, const char *host, const char *port, if (*sock == INVALID_SOCKET) { ERR_print_errors(bio_err); } else { + /* Remove any stale errors from previous connection attempts */ + ERR_clear_error(); ret = 1; } BIO_ADDRINFO_free(res); -- cgit v1.2.3