Module: kamailio
Branch: 5.2
Commit: 916110d55a1ec83e142bd5fc2e9df8f9a5505eca
URL: 
https://github.com/kamailio/kamailio/commit/916110d55a1ec83e142bd5fc2e9df8f9a5505eca

Author: Daniel-Constantin Mierla <mico...@gmail.com>
Committer: Henning Westerholt <h...@skalatan.de>
Date: 2020-09-09T14:43:01Z

core: skip abort() in free_lump() for LUMPFLAG_DUPED

- the LUMPFLAG_DUPED is set when duplicating lumps list for branch route
execution, but some functions such as set_body() may want to clean them
- report and minimal reproducing config by Henning Westerholt

(cherry picked from commit 57ee97f52dd90c86743b6fd6dd682285ef994e80)

---

Modified: src/core/data_lump.c

---

Diff:  
https://github.com/kamailio/kamailio/commit/916110d55a1ec83e142bd5fc2e9df8f9a5505eca.diff
Patch: 
https://github.com/kamailio/kamailio/commit/916110d55a1ec83e142bd5fc2e9df8f9a5505eca.patch

---

diff --git a/src/core/data_lump.c b/src/core/data_lump.c
index 6417bee21a..83d04eca8a 100644
--- a/src/core/data_lump.c
+++ b/src/core/data_lump.c
@@ -452,14 +452,17 @@ struct lump* anchor_lump2(struct sip_msg* msg, int 
offset, int len,
 }
 
 
+/**
+ * free lump content
+ */
 void free_lump(struct lump* lmp)
 {
-       if (lmp && (lmp->op==LUMP_ADD)){
-               if (lmp->u.value){
-                       if (lmp->flags &(LUMPFLAG_DUPED|LUMPFLAG_SHMEM)){
+       if (lmp && (lmp->op==LUMP_ADD)) {
+               if (lmp->u.value) {
+                       if (lmp->flags & LUMPFLAG_SHMEM) {
                                LM_CRIT("non free-able lump: %p flags=%x\n", 
lmp, lmp->flags);
                                abort();
-                       }else{
+                       } else if(!(lmp->flags & LUMPFLAG_DUPED)) {
                                pkg_free(lmp->u.value);
                                lmp->u.value=0;
                                lmp->len=0;


_______________________________________________
Kamailio (SER) - Development Mailing List
sr-dev@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to