wolfssl ssl_(send|recv)_data(): Call wolfSSL_ERR_clear_error() before doing any work
authorFabian Keil <fk@fabiankeil.de>
Wed, 10 Jul 2024 13:58:37 +0000 (15:58 +0200)
committerFabian Keil <fk@fabiankeil.de>
Thu, 10 Oct 2024 04:49:05 +0000 (06:49 +0200)
Prevents logging of bogus errors like:
15:53:27.932 009 Error: Sending data on socket 12 over TLS failed: RSA key too small
15:53:27.932 009 Error: Sending data on socket 12 over TLS failed: RSA key too small
15:53:27.932 009 Error: Sending data on socket 12 over TLS failed: RSA key too small
15:53:27.932 009 Error: Sending data on socket 12 over TLS failed: RSA key too small
15:53:27.932 009 Error: Sending data on socket 12 over TLS failed: RSA key too small
15:53:27.932 009 Error: Sending data on socket 12 over TLS failed: RSA key too small
15:53:27.932 009 Error: Sending data on socket 12 over TLS failed: RSA key too small
15:53:27.932 009 Error: Sending data on socket 12 over TLS failed: ECC key too small
15:53:27.932 009 Error: Sending data on socket 12 over TLS failed: error state on socket
15:53:27.932 009 Error: Sending data on socket 12 over TLS failed: Peer closed underlying transport Error
15:53:27.933 009 Error: Failed to send the modified content to the client over TLS

wolfssl.c

index e0cbb23..9a4c794 100644 (file)
--- a/wolfssl.c
+++ b/wolfssl.c
@@ -157,6 +157,8 @@ extern int ssl_send_data(struct ssl_attr *ssl_attr, const unsigned char *buf, si
       return 0;
    }
 
+   wolfSSL_ERR_clear_error();
+
    ssl = ssl_attr->wolfssl_attr.ssl;
    fd = wolfSSL_get_fd(ssl);
 
@@ -206,6 +208,7 @@ extern int ssl_recv_data(struct ssl_attr *ssl_attr, unsigned char *buf, size_t m
    int fd = -1;
 
    memset(buf, 0, max_length);
+   wolfSSL_ERR_clear_error();
 
    /*
     * Receiving data from SSL context into buffer