[sr-dev] git:master:4efb386e: core: proper cloning of xavp list with no-data type

Daniel-Constantin Mierla miconda at gmail.com
Tue Jul 14 14:56:19 CEST 2015


Module: kamailio
Branch: master
Commit: 4efb386ebf47fc89446f57f2faf6f5cddfb7bff7
URL: https://github.com/kamailio/kamailio/commit/4efb386ebf47fc89446f57f2faf6f5cddfb7bff7

Author: Daniel-Constantin Mierla <miconda at gmail.com>
Committer: Daniel-Constantin Mierla <miconda at gmail.com>
Date: 2015-07-14T14:54:31+02:00

core: proper cloning of xavp list with no-data type

- function used for cloning xavps stored in location record
- reported by Luca Mularoni

---

Modified: xavp.c

---

Diff:  https://github.com/kamailio/kamailio/commit/4efb386ebf47fc89446f57f2faf6f5cddfb7bff7.diff
Patch: https://github.com/kamailio/kamailio/commit/4efb386ebf47fc89446f57f2faf6f5cddfb7bff7.patch

---

diff --git a/xavp.c b/xavp.c
index a6c62e7..27a200f 100644
--- a/xavp.c
+++ b/xavp.c
@@ -641,6 +641,7 @@ sr_xavp_t *xavp_clone_level_nodata(sr_xavp_t *xold)
 		LM_ERR("cannot create cloned root xavp\n");
 		return NULL;
 	}
+	LM_DBG("cloned root xavp [%.*s]\n", xold->name.len, xold->name.s);
 
 	if(xold->val.type!=SR_XTYPE_XAVP)
 	{
@@ -667,15 +668,16 @@ sr_xavp_t *xavp_clone_level_nodata(sr_xavp_t *xold)
 					return NULL;
 				}
 			}
+			LM_DBG("cloned inner xavp [%.*s]\n", oavp->name.len, oavp->name.s);
 			if(xnew->val.v.xavp == NULL)
 			{
 				/* link to val in head xavp */
 				xnew->val.v.xavp = navp;
-				pavp = navp;
 			} else {
 				/* link to prev xavp in the list */
 				pavp->next = navp;
 			}
+			pavp = navp;
 		}
 		oavp = oavp->next;
 	}




More information about the sr-dev mailing list