diff options
author | Matt Caswell <matt@openssl.org> | 2016-05-04 09:12:27 +0100 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2016-05-04 10:16:39 +0100 |
commit | ea837d79f91f481d7b07ea7a985b35c24e9dcc79 (patch) | |
tree | dcab482d696a87951f7bcdcc3b9009db1281e644 | |
parent | 1697a81bafcc9a65012b62ba01c1661bf40e5edb (diff) | |
download | openssl-ea837d79f91f481d7b07ea7a985b35c24e9dcc79.tar.gz |
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 <levitte@openssl.org>
-rw-r--r-- | apps/s_socket.c | 2 |
1 files changed, 2 insertions, 0 deletions
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); |