From 12414972ad0c28ac50ece3c14f98134c3f06c522 Mon Sep 17 00:00:00 2001 From: Nicolas C Date: Fri, 22 Jan 2021 15:16:56 +0100 Subject: [PATCH] core: fix to xavp_rm_internal (#2604) This fixes the following issue: https://github.com/kamailio/kamailio/issues/2604 Description of the issue: When called to remove a specific index from a given xavp, function xavp_rm_by_index removes the index (as expected) but also all others before it. E.g : If called with idx = 1, it removes indexes 0 and 1. Likewise if invoked with idx = 2 => the first 3 elements are removed. This bug is located in function xavp_rm_internal. An assignment was missing when looping over the xavp list. Same for xavi_rm_internal. --- src/core/xavp.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/core/xavp.c b/src/core/xavp.c index de6da0c8581..26e89a8df30 100644 --- a/src/core/xavp.c +++ b/src/core/xavp.c @@ -454,6 +454,8 @@ static int xavp_rm_internal(str *name, sr_xavp_t **head, int idx) if(idx>=0) return 1; count++; + } else { + prv = foo; } n++; } else { @@ -1914,6 +1916,8 @@ static int xavi_rm_internal(str *name, sr_xavp_t **head, int idx) if(idx>=0) return 1; count++; + } else { + prv = foo; } n++; } else {