mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-22 12:52:33 +00:00
res_pjsip_caller_id: Use static pj_str_t for fromto header names.
PJSIP assumes that these header names are not allocated, does not clone the name strings when reusing headers. Block unload of res_pjsip_caller_id until shutdown to ensure static memory stays valid. It was previously unsafe to unload while any sessions are active. Change-Id: I190854dea943d6e441cf03733f8a0da661aea27f
This commit is contained in:
@@ -430,8 +430,7 @@ static pjsip_fromto_hdr *create_new_id_hdr(const pj_str_t *hdr_name, pjsip_fromt
|
||||
|
||||
id_hdr = pjsip_from_hdr_create(tdata->pool);
|
||||
id_hdr->type = PJSIP_H_OTHER;
|
||||
pj_strdup(tdata->pool, &id_hdr->name, hdr_name);
|
||||
id_hdr->sname = id_hdr->name;
|
||||
id_hdr->sname = id_hdr->name = *hdr_name;
|
||||
|
||||
id_name_addr = pjsip_uri_clone(tdata->pool, base->uri);
|
||||
id_uri = pjsip_uri_get_uri(id_name_addr->uri);
|
||||
@@ -779,6 +778,7 @@ static struct ast_sip_session_supplement caller_id_supplement = {
|
||||
|
||||
static int load_module(void)
|
||||
{
|
||||
ast_module_shutdown_ref(AST_MODULE_SELF);
|
||||
ast_sip_session_register_supplement(&caller_id_supplement);
|
||||
return AST_MODULE_LOAD_SUCCESS;
|
||||
}
|
||||
|
Reference in New Issue
Block a user