Module: kamailio Branch: master Commit: 8239d541503ce43c58d7f7ab54ba8ee70f557821 URL: https://github.com/kamailio/kamailio/commit/8239d541503ce43c58d7f7ab54ba8ee70f557821
Author: Daniel-Constantin Mierla <[email protected]> Committer: Daniel-Constantin Mierla <[email protected]> Date: 2026-02-13T08:48:37+01:00 tls_wolfssl: replace asserts with error logs - do not crash, try to run further - GH #4391 --- Modified: src/modules/tls_wolfssl/tls_server.c --- Diff: https://github.com/kamailio/kamailio/commit/8239d541503ce43c58d7f7ab54ba8ee70f557821.diff Patch: https://github.com/kamailio/kamailio/commit/8239d541503ce43c58d7f7ab54ba8ee70f557821.patch --- diff --git a/src/modules/tls_wolfssl/tls_server.c b/src/modules/tls_wolfssl/tls_server.c index b15ad780fbe..fc9e0e47799 100644 --- a/src/modules/tls_wolfssl/tls_server.c +++ b/src/modules/tls_wolfssl/tls_server.c @@ -687,8 +687,12 @@ void tls_h_tcpconn_close_f(struct tcp_connection *c, int fd) break; nr += npos; } - assert(nr == wr_used); - _tcpconn_write_nb(fd, c, (char *)wr_buf, wr_used); + if(nr == wr_used) { + _tcpconn_write_nb(fd, c, (char *)wr_buf, wr_used); + } else { + LM_ERR("skip tcp con write - nr(%lu) != wr_used(%lu)\n", + (unsigned long)nr, (unsigned long)wr_used); + } } /* we don't bother reading anything (we don't want to wait on close) */ @@ -1017,7 +1021,11 @@ int tls_h_encode_f(struct tcp_connection *c, const char **pbuf, break; nr += npos; } - assert(nr == wr_used); + if(unlikely(nr != wr_used)) { + LM_ERR("failure - nr(%lu) != wr_used(%lu)\n", (unsigned long)nr, + (unsigned long)wr_used); + goto error; + } *plen = wr_used; *pbuf = (const char *)wr_buf; TLS_WR_TRACE("(%p) end (offs %d, rest_buf=%p rest_len=%d 0x%0x) => %d \n", @@ -1041,7 +1049,11 @@ int tls_h_encode_f(struct tcp_connection *c, const char **pbuf, break; nr += npos; } - assert(nr == wr_used); + if(unlikely(nr != wr_used)) { + LM_ERR("failure - nr(%lu) != wr_used(%lu)\n", (unsigned long)nr, + (unsigned long)wr_used); + return -1; + } *plen = wr_used; *pbuf = (const char *)wr_buf; DBG("TLS connection has been closed\n"); @@ -1145,7 +1157,11 @@ int tls_h_read_f(struct tcp_connection *c, rd_conn_flags_t *flags) break; nw += npos; } - assert(nw == bytes_read); + if(unlikely(nw != bytes_read)) { + LM_ERR("failure - nw(%lu) != bytes_read(%lu)\n", (unsigned long)nw, + (unsigned long)bytes_read); + goto error; + } } continue_ssl_read: ssl_error = WOLFSSL_ERROR_NONE; @@ -1296,7 +1312,13 @@ int tls_h_read_f(struct tcp_connection *c, rd_conn_flags_t *flags) break; nr += npos; } - assert(nr == wr_used); + if(unlikely(nr != wr_used)) { + LM_ERR("failure - nr(%lu) != wr_used(%lu)\n", (unsigned long)nr, + (unsigned long)wr_used); + lock_release(&c->write_lock); + TLS_RD_TRACE("(%p, %p) tcpconn_send_unsafe failure\n", c, flags); + goto error_send; + } if(unlikely(tcpconn_send_unsafe( c->fd, c, (char *)wr_buf, wr_used, c->send_flags) < 0)) { _______________________________________________ Kamailio - Development Mailing List -- [email protected] To unsubscribe send an email to [email protected] Important: keep the mailing list in the recipients, do not reply only to the sender!
