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!

Reply via email to