Module: kamailio Branch: master Commit: 2583446968d81a9351caab1cfdd2cc86434850f3 URL: https://github.com/kamailio/kamailio/commit/2583446968d81a9351caab1cfdd2cc86...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: Daniel-Constantin Mierla miconda@gmail.com Date: 2021-06-03T10:55:22+02:00
core: select - test for HDR_ERROR_T after header name parsing
---
Modified: src/core/select_core.c
---
Diff: https://github.com/kamailio/kamailio/commit/2583446968d81a9351caab1cfdd2cc86... Patch: https://github.com/kamailio/kamailio/commit/2583446968d81a9351caab1cfdd2cc86...
---
diff --git a/src/core/select_core.c b/src/core/select_core.c index 029f880a48..02d393a6ba 100644 --- a/src/core/select_core.c +++ b/src/core/select_core.c @@ -595,7 +595,7 @@ int select_msg_header(str* res, select_t* s, struct sip_msg* msg) { /* get all headers */ char *c; - res->s = SIP_MSG_START(msg) + msg->first_line.len; + res->s = SIP_MSG_START(msg) + msg->first_line.len; c = get_body(msg); res->len = c - res->s; return 0; @@ -607,7 +607,7 @@ int select_anyheader(str* res, select_t* s, struct sip_msg* msg) int hi; char c; struct hdr_field hdr; - + if(msg==NULL) { if (res!=NULL) return -1;
@@ -622,13 +622,15 @@ int select_anyheader(str* res, select_t* s, struct sip_msg* msg) /* if header name is parseable, parse it and set SEL_PARAM_DIV */ c=s->params[2].v.s.s[s->params[2].v.s.len]; s->params[2].v.s.s[s->params[2].v.s.len]=':'; - if (parse_hname2_short(s->params[2].v.s.s,s->params[2].v.s.s+(s->params[2].v.s.len<3?4:s->params[2].v.s.len+1), - &hdr)==0) { + parse_hname2_short(s->params[2].v.s.s,s->params[2].v.s.s + +(s->params[2].v.s.len<3?4:s->params[2].v.s.len+1), + &hdr); + if(hdr.type==HDR_ERROR_T) { LM_ERR("fixup_call:parse error\n"); return -1; } s->params[2].v.s.s[s->params[2].v.s.len]=c; - + if (hdr.type!=HDR_OTHER_T && hdr.type!=HDR_ERROR_T) { /* pkg_free(s->params[1].v.s.s); */ /* don't free it (the mem can leak only once at startup)