[sr-dev] git:5.2:9b6d1e9e: corex: free old outbound buffer inside SREV_NET_DATA_OUT callback

Daniel-Constantin Mierla miconda at gmail.com
Tue Aug 20 12:06:10 CEST 2019


Module: kamailio
Branch: 5.2
Commit: 9b6d1e9ee767e2bf2a31dcf817558566d99f81b2
URL: https://github.com/kamailio/kamailio/commit/9b6d1e9ee767e2bf2a31dcf817558566d99f81b2

Author: Daniel-Constantin Mierla <miconda at gmail.com>
Committer: Daniel-Constantin Mierla <miconda at gmail.com>
Date: 2019-08-15T12:44:54+02:00

corex: free old outbound buffer inside SREV_NET_DATA_OUT callback

(cherry picked from commit c79dfbeab0bfefaa4dd5cefc41cba3ba157da0ce)

---

Modified: src/modules/corex/corex_nio.c

---

Diff:  https://github.com/kamailio/kamailio/commit/9b6d1e9ee767e2bf2a31dcf817558566d99f81b2.diff
Patch: https://github.com/kamailio/kamailio/commit/9b6d1e9ee767e2bf2a31dcf817558566d99f81b2.patch

---

diff --git a/src/modules/corex/corex_nio.c b/src/modules/corex/corex_nio.c
index 96837e8a0c..6b79fcc648 100644
--- a/src/modules/corex/corex_nio.c
+++ b/src/modules/corex/corex_nio.c
@@ -141,6 +141,7 @@ int nio_msg_sent(sr_event_param_t *evp)
     int_str avp_value;
     struct usr_avp *avp;
     struct run_act_ctx ra_ctx;
+    str nbuf = STR_NULL;
 
     obuf = (str*)evp->data;
 
@@ -163,7 +164,15 @@ int nio_msg_sent(sr_event_param_t *evp)
         if(avp!=NULL && is_avp_str_val(avp)) {
             msg.buf = avp_value.s.s;
             msg.len = avp_value.s.len;
-            obuf->s = nio_msg_update(&msg, (unsigned int*)&obuf->len);
+            nbuf.s = nio_msg_update(&msg, (unsigned int*)&nbuf.len);
+			if(nbuf.s!=NULL) {
+				LM_DBG("new outbound buffer generated\n");
+				pkg_free(obuf->s);
+				obuf->s = nbuf.s;
+				obuf->len = nbuf.len;
+			} else {
+				LM_ERR("failed to generate new outbound buffer\n");
+			}
         } else {
             LM_WARN("no value set for AVP %.*s, using unmodified message\n",
                 nio_msg_avp_param.len, nio_msg_avp_param.s);




More information about the sr-dev mailing list