mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-12 15:45:18 +00:00
CallerID: Fix parsing of malformed callerid
This allows the callerid parsing function to handle malformed input strings and strings containing escaped and unescaped double quotes. This also adds a unittest to cover many of the cases where the parsing algorithm previously failed. Review: https://reviewboard.asterisk.org/r/3923/ Review: https://reviewboard.asterisk.org/r/3933/ ........ Merged revisions 422112 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 422113 from http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged revisions 422114 from http://svn.asterisk.org/svn/asterisk/branches/12 ........ Merged revisions 422154 from http://svn.asterisk.org/svn/asterisk/branches/13 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@422158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -404,7 +404,11 @@ static void modify_id_header(pj_pool_t *pool, pjsip_fromto_hdr *id_hdr, const st
|
||||
id_uri = pjsip_uri_get_uri(id_name_addr->uri);
|
||||
|
||||
if (id->name.valid) {
|
||||
pj_strdup2(pool, &id_name_addr->display, id->name.str);
|
||||
int name_buf_len = strlen(id->name.str) * 2 + 1;
|
||||
char *name_buf = ast_alloca(name_buf_len);
|
||||
|
||||
ast_escape_quoted(id->name.str, name_buf, name_buf_len);
|
||||
pj_strdup2(pool, &id_name_addr->display, name_buf);
|
||||
}
|
||||
|
||||
if (id->number.valid) {
|
||||
@@ -438,7 +442,11 @@ static pjsip_fromto_hdr *create_new_id_hdr(const pj_str_t *hdr_name, pjsip_tx_da
|
||||
id_uri = pjsip_uri_get_uri(id_name_addr->uri);
|
||||
|
||||
if (id->name.valid) {
|
||||
pj_strdup2(tdata->pool, &id_name_addr->display, id->name.str);
|
||||
int name_buf_len = strlen(id->name.str) * 2 + 1;
|
||||
char *name_buf = ast_alloca(name_buf_len);
|
||||
|
||||
ast_escape_quoted(id->name.str, name_buf, name_buf_len);
|
||||
pj_strdup2(tdata->pool, &id_name_addr->display, name_buf);
|
||||
}
|
||||
|
||||
pj_strdup2(tdata->pool, &id_uri->user, id->number.str);
|
||||
|
Reference in New Issue
Block a user