Module: kamailio Branch: master Commit: 1f76bca74839f35d11f42edf758eb046cedb752c URL: https://github.com/kamailio/kamailio/commit/1f76bca74839f35d11f42edf758eb046...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: Daniel-Constantin Mierla miconda@gmail.com Date: 2020-03-19T10:59:43+01:00
pv: do not set ending '\0' for port value in pv_set_ruri_port()
- it can be a reference to a static string, ending up in a crash - GH #2258
---
Modified: src/modules/pv/pv_core.c
---
Diff: https://github.com/kamailio/kamailio/commit/1f76bca74839f35d11f42edf758eb046... Patch: https://github.com/kamailio/kamailio/commit/1f76bca74839f35d11f42edf758eb046...
---
diff --git a/src/modules/pv/pv_core.c b/src/modules/pv/pv_core.c index 18db915cfb..9087fe01bf 100644 --- a/src/modules/pv/pv_core.c +++ b/src/modules/pv/pv_core.c @@ -2558,7 +2558,9 @@ int pv_set_ruri_port(struct sip_msg* msg, pv_param_t *param, act.val[0].type = STRING_ST; act.val[0].u.string = val->rs.s; backup = val->rs.s[val->rs.len]; - val->rs.s[val->rs.len] = '\0'; + if(backup != '\0') { + val->rs.s[val->rs.len] = '\0'; + } act.type = SET_PORT_T; init_run_actions_ctx(&h); if (do_action(&h, &act, msg)<0) @@ -2567,7 +2569,9 @@ int pv_set_ruri_port(struct sip_msg* msg, pv_param_t *param, val->rs.s[val->rs.len] = backup; goto error; } - val->rs.s[val->rs.len] = backup; + if(backup != '\0') { + val->rs.s[val->rs.len] = backup; + }
return 0; error: