|
@@ -2945,7 +2945,7 @@ char* create_via_hf( unsigned int *len,
|
|
|
xparams.len = xavp_serialize_fields(&_ksr_xavp_via_params,
|
|
|
xparams.s, pv_get_buffer_size());
|
|
|
if(xparams.len>0) {
|
|
|
- via = (char*)pkg_malloc(extra_params.len+xparams.len+1);
|
|
|
+ via = (char*)pkg_malloc(extra_params.len+xparams.len+2);
|
|
|
if(via==0) {
|
|
|
LM_ERR("building xavps params failed\n");
|
|
|
if (extra_params.s) pkg_free(extra_params.s);
|
|
@@ -2955,7 +2955,10 @@ char* create_via_hf( unsigned int *len,
|
|
|
memcpy(via, extra_params.s, extra_params.len);
|
|
|
pkg_free(extra_params.s);
|
|
|
}
|
|
|
- memcpy(via + extra_params.len, xparams.s, xparams.len);
|
|
|
+ /* add ';' between via parameters */
|
|
|
+ via[extra_params.len] = ';';
|
|
|
+ /* skip last ';' from xavp serialized output */
|
|
|
+ memcpy(via + extra_params.len + 1, xparams.s, xparams.len - 1);
|
|
|
extra_params.s = via;
|
|
|
extra_params.len += xparams.len;
|
|
|
extra_params.s[extra_params.len] = '\0';
|