浏览代码

rr: reset param buffer for r-r advertised address

- GH #2486
Daniel-Constantin Mierla 5 年之前
父节点
当前提交
8dfc0f6ef0
共有 1 个文件被更改,包括 10 次插入0 次删除
  1. 10 0
      src/modules/rr/record.c

+ 10 - 0
src/modules/rr/record.c

@@ -549,6 +549,11 @@ int record_route_preset(struct sip_msg* _m, str* _data)
 		from = get_from(_m);
 		from = get_from(_m);
 	}
 	}
 
 
+	if (rr_param_buf.len && rr_param_msg!=_m->id) {
+		/* rr_params were set for a different message -> reset buffer */
+		rr_param_buf.len = 0;
+	}
+
 	l = anchor_lump(_m, _m->headers->name.s - _m->buf, 0, HDR_RECORDROUTE_T);
 	l = anchor_lump(_m, _m->headers->name.s - _m->buf, 0, HDR_RECORDROUTE_T);
 	if (!l) {
 	if (!l) {
 		LM_ERR("failed to create lump anchor\n");
 		LM_ERR("failed to create lump anchor\n");
@@ -812,6 +817,11 @@ int record_route_advertised_address(struct sip_msg* _m, str* _data)
 		tag = 0;
 		tag = 0;
 	}
 	}
 
 
+	if (rr_param_buf.len && rr_param_msg!=_m->id) {
+		/* rr_params were set for a different message -> reset buffer */
+		rr_param_buf.len = 0;
+	}
+
 	if(rr_ignore_sips==0) {
 	if(rr_ignore_sips==0) {
 		sips = rr_is_sips(_m);
 		sips = rr_is_sips(_m);
 	}
 	}