Related to ticket #97: make name_addr handling more robust against possibility of bugs that someone may put another name_addr inside a name_addr

git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@939 74dad513-b988-da41-8d7b-12977e46ad98
This commit is contained in:
Benny Prijono 2007-02-10 19:22:25 +00:00
parent c2daf784d5
commit 9c1528fadb
3 changed files with 10 additions and 6 deletions

View File

@ -203,7 +203,7 @@ static void *pjsip_get_uri( pjsip_uri *uri )
static void *pjsip_name_addr_get_uri( pjsip_name_addr *name ) static void *pjsip_name_addr_get_uri( pjsip_name_addr *name )
{ {
return name->uri; return pjsip_uri_get_uri(name->uri);
} }
PJ_DEF(void) pjsip_sip_uri_set_secure( pjsip_sip_uri *url, PJ_DEF(void) pjsip_sip_uri_set_secure( pjsip_sip_uri *url,
@ -529,8 +529,10 @@ static pj_ssize_t pjsip_name_addr_print(pjsip_uri_context_e context,
int printed; int printed;
char *startbuf = buf; char *startbuf = buf;
char *endbuf = buf + size; char *endbuf = buf + size;
pjsip_uri *uri;
pj_assert(name->uri != NULL); uri = pjsip_uri_get_uri(name->uri);
pj_assert(uri != NULL);
if (context != PJSIP_URI_IN_REQ_URI) { if (context != PJSIP_URI_IN_REQ_URI) {
if (name->display.slen) { if (name->display.slen) {
@ -543,7 +545,7 @@ static pj_ssize_t pjsip_name_addr_print(pjsip_uri_context_e context,
*buf++ = '<'; *buf++ = '<';
} }
printed = pjsip_uri_print(context,name->uri, buf, size-(buf-startbuf)); printed = pjsip_uri_print(context,uri, buf, size-(buf-startbuf));
if (printed < 1) if (printed < 1)
return -1; return -1;
buf += printed; buf += printed;

View File

@ -943,7 +943,8 @@ PJ_DEF(pj_status_t) pjsua_acc_create_uac_contact( pj_pool_t *pool,
* first entry of the route-set. * first entry of the route-set.
*/ */
if (!pj_list_empty(&acc->route_set)) { if (!pj_list_empty(&acc->route_set)) {
sip_uri = (pjsip_sip_uri*) acc->route_set.next->name_addr.uri; sip_uri = (pjsip_sip_uri*)
pjsip_uri_get_uri(acc->route_set.next->name_addr.uri);
} else { } else {
pj_str_t tmp; pj_str_t tmp;
pjsip_uri *uri; pjsip_uri *uri;
@ -1034,7 +1035,8 @@ PJ_DEF(pj_status_t) pjsua_acc_create_uas_contact( pj_pool_t *pool,
/* If Record-Route is present, then URI is the top Record-Route. */ /* If Record-Route is present, then URI is the top Record-Route. */
if (rdata->msg_info.record_route) { if (rdata->msg_info.record_route) {
sip_uri = (pjsip_sip_uri*) rdata->msg_info.record_route->name_addr.uri; sip_uri = (pjsip_sip_uri*)
pjsip_uri_get_uri(rdata->msg_info.record_route->name_addr.uri);
} else { } else {
pjsip_contact_hdr *h_contact; pjsip_contact_hdr *h_contact;
pjsip_uri *uri = NULL; pjsip_uri *uri = NULL;

View File

@ -185,7 +185,7 @@ PJ_DEF(pj_status_t) pjsua_buddy_add( const pjsua_buddy_config *cfg,
/* Save URI */ /* Save URI */
pjsua_var.buddy[index].uri = tmp; pjsua_var.buddy[index].uri = tmp;
sip_uri = (pjsip_sip_uri*) url->uri; sip_uri = (pjsip_sip_uri*) pjsip_uri_get_uri(url->uri);
pjsua_var.buddy[index].name = sip_uri->user; pjsua_var.buddy[index].name = sip_uri->user;
pjsua_var.buddy[index].display = url->display; pjsua_var.buddy[index].display = url->display;
pjsua_var.buddy[index].host = sip_uri->host; pjsua_var.buddy[index].host = sip_uri->host;