|
@@ -697,6 +697,7 @@ static int fixup_rpc(void** param, int param_no)
|
|
|
|
|
|
if (psp->setf != pv_list_set && psp->setf != pv_xbuff_set) {
|
|
|
LM_ERR("wrong parameter #%d: accepted types are list or xbuff\n",param_no);
|
|
|
+ pv_spec_destroy(&erl_param->value.sp);
|
|
|
pkg_free((void*)erl_param);
|
|
|
return E_UNSPEC;
|
|
|
}
|
|
@@ -915,6 +916,7 @@ static int fixup_reg(void** param, int param_no)
|
|
|
erl_param->type = ERL_PARAM_XBUFF_SPEC;
|
|
|
} else {
|
|
|
LM_ERR("wrong parameter #%d\n",param_no);
|
|
|
+ pv_spec_destroy(&erl_param->value.sp);
|
|
|
pkg_free((void*)erl_param);
|
|
|
return E_UNSPEC;
|
|
|
}
|
|
@@ -1109,6 +1111,7 @@ static int fixup_reply(void** param, int param_no)
|
|
|
erl_param->type = ERL_PARAM_XBUFF_SPEC;
|
|
|
} else {
|
|
|
LM_ERR("wrong parameter #%d\n",param_no);
|
|
|
+ pv_spec_destroy(&erl_param->value.sp);
|
|
|
pkg_free((void*)erl_param);
|
|
|
return E_UNSPEC;
|
|
|
}
|
|
@@ -1354,6 +1357,7 @@ static int fixup_send(void** param, int param_no)
|
|
|
if (erl_param->value.sp.pvp.pvn.type == PV_NAME_INTSTR) {
|
|
|
if (fix_param_types(FPARAM_STR|FPARAM_STRING,param)) {
|
|
|
LM_ERR("wrong parameter #%d\n",param_no);
|
|
|
+ pv_spec_destroy(&erl_param->value.sp);
|
|
|
pkg_free((void*)erl_param);
|
|
|
return E_UNSPEC;
|
|
|
}
|
|
@@ -1363,6 +1367,7 @@ static int fixup_send(void** param, int param_no)
|
|
|
else {
|
|
|
if (erl_param->value.sp.type == PVT_XAVP) {
|
|
|
LM_ERR("XAVP not acceptable for parameter #%d\n",param_no);
|
|
|
+ pv_spec_destroy(&erl_param->value.sp);
|
|
|
pkg_free((void*)erl_param);
|
|
|
return E_UNSPEC;
|
|
|
}
|
|
@@ -1373,6 +1378,7 @@ static int fixup_send(void** param, int param_no)
|
|
|
erl_param->type = ERL_PARAM_XBUFF_SPEC;
|
|
|
} else {
|
|
|
LM_ERR("wrong parameter #%d\n",param_no);
|
|
|
+ pv_spec_destroy(&erl_param->value.sp);
|
|
|
pkg_free((void*)erl_param);
|
|
|
return E_UNSPEC;
|
|
|
}
|
|
@@ -1392,6 +1398,7 @@ static int fixup_send(void** param, int param_no)
|
|
|
if (erl_param->value.sp.pvp.pvn.type == PV_NAME_INTSTR) {
|
|
|
if (fix_param_types(FPARAM_STR|FPARAM_STRING,param)) {
|
|
|
LM_ERR("wrong parameter #%d\n",param_no);
|
|
|
+ pv_spec_destroy(&erl_param->value.sp);
|
|
|
pkg_free((void*)erl_param);
|
|
|
return E_UNSPEC;
|
|
|
}
|
|
@@ -1400,6 +1407,7 @@ static int fixup_send(void** param, int param_no)
|
|
|
} else {
|
|
|
if (erl_param->value.sp.type ==PVT_XAVP) {
|
|
|
LM_ERR("XAVP not acceptable for parameter #%d\n",param_no);
|
|
|
+ pv_spec_destroy(&erl_param->value.sp);
|
|
|
pkg_free((void*)erl_param);
|
|
|
return E_UNSPEC;
|
|
|
}
|
|
@@ -1415,7 +1423,7 @@ static int fixup_send(void** param, int param_no)
|
|
|
erl_param->type = ERL_PARAM_XBUFF_SPEC;
|
|
|
} else {
|
|
|
LM_ERR("wrong parameter #%d\n",param_no);
|
|
|
- pv_spec_free(&erl_param->value.sp);
|
|
|
+ pv_spec_destroy(&erl_param->value.sp);
|
|
|
pkg_free((void*)erl_param);
|
|
|
return E_UNSPEC;
|
|
|
}
|