diff --git a/debian/patches/series b/debian/patches/series index 1a908ddf7..beffe8fc6 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -50,6 +50,7 @@ sipwise/dlg_get_var_error_more_verbose_on_dlg sipwise/db_redis_protect_length_overflow.patch sipwise/db_redis_support_null_key_values.patch sipwise/permissions_consider_db_mode_when_rpc_reload.patch +sipwise/siputils_tel2sip_check_uri.patch ### Don't just put stuff in any order ### use gbp pq import/export tooling to help maintain patches diff --git a/debian/patches/sipwise/siputils_tel2sip_check_uri.patch b/debian/patches/sipwise/siputils_tel2sip_check_uri.patch new file mode 100644 index 000000000..5c0ba64a8 --- /dev/null +++ b/debian/patches/sipwise/siputils_tel2sip_check_uri.patch @@ -0,0 +1,42 @@ +--- a/src/modules/siputils/checks.c ++++ b/src/modules/siputils/checks.c +@@ -645,6 +645,7 @@ int tel2sip(struct sip_msg *_msg, char * + int i, j, in_tel_parameters = 0; + pv_spec_t *res; + pv_value_t res_val; ++ struct sip_uri parsed_check; + + /* get parameters */ + if(get_str_fparam(&uri, _msg, (fparam_t *)_uri) < 0) { +@@ -709,6 +710,11 @@ int tel2sip(struct sip_msg *_msg, char * + /* tel_uri is not needed anymore */ + pkg_free(tel_uri.s); + ++ if(parse_uri(sip_uri.s, sip_uri.len, &parsed_check) < 0) { ++ pkg_free(sip_uri.s); ++ return -1; ++ } ++ + /* set result pv value and write sip uri to result pv */ + res_val.rs = sip_uri; + res_val.flags = PV_VAL_STR; +@@ -823,6 +829,7 @@ int tel2sip2(struct sip_msg *_msg, char + pv_value_t res_val; + char *tmp_ptr = NULL; + tel_param_t params[MAX_TEL_PARAMS]; ++ struct sip_uri parsed_check; + + /* get parameters */ + if(get_str_fparam(&uri, _msg, (fparam_t *)_uri) < 0) { +@@ -935,6 +942,11 @@ int tel2sip2(struct sip_msg *_msg, char + /* tel_uri is not needed anymore */ + pkg_free(tel_uri.s); + ++ if(parse_uri(sip_uri.s, sip_uri.len, &parsed_check) < 0) { ++ pkg_free(sip_uri.s); ++ return -1; ++ } ++ + sip_uri.len = strlen(sip_uri.s); + + /* set result pv value and write sip uri to result pv */