From 47dadb902dacb4d963ba9ec34803f62ea418e964 Mon Sep 17 00:00:00 2001 From: "Roger A. Light" Date: Thu, 24 Oct 2019 22:57:05 +0100 Subject: [PATCH] Only call ERR_clear_error() after an error has occurred. --- lib/net_mosq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/net_mosq.c b/lib/net_mosq.c index c2907452..051240dd 100644 --- a/lib/net_mosq.c +++ b/lib/net_mosq.c @@ -856,7 +856,6 @@ ssize_t net__read(struct mosquitto *mosq, void *buf, size_t count) errno = 0; #ifdef WITH_TLS if(mosq->ssl){ - ERR_clear_error(); ret = SSL_read(mosq->ssl, buf, count); if(ret <= 0){ err = SSL_get_error(mosq->ssl, ret); @@ -871,6 +870,7 @@ ssize_t net__read(struct mosquitto *mosq, void *buf, size_t count) net__print_ssl_error(mosq); errno = EPROTO; } + ERR_clear_error(); #ifdef WIN32 WSASetLastError(errno); #endif @@ -904,7 +904,6 @@ ssize_t net__write(struct mosquitto *mosq, void *buf, size_t count) #ifdef WITH_TLS if(mosq->ssl){ mosq->want_write = false; - ERR_clear_error(); ret = SSL_write(mosq->ssl, buf, count); if(ret < 0){ err = SSL_get_error(mosq->ssl, ret); @@ -919,6 +918,7 @@ ssize_t net__write(struct mosquitto *mosq, void *buf, size_t count) net__print_ssl_error(mosq); errno = EPROTO; } + ERR_clear_error(); #ifdef WIN32 WSASetLastError(errno); #endif