summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRiza Sulistyo <riza@teluu.com>2013-02-27 14:26:03 +0000
committerRiza Sulistyo <riza@teluu.com>2013-02-27 14:26:03 +0000
commit8a998ddd8b6db16550fed28fabf5474332d0240b (patch)
tree5d92385af8f5d5b62d00c6d7dbe47e77365ee237
parent8e69f7842a49e2baa3c187cdced8fb5bca3d9cda (diff)
Re #1609: backported to 1.x
git-svn-id: http://svn.pjsip.org/repos/pjproject/branches/1.x@4399 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--pjsip/src/pjsip/sip_auth_client.c15
-rw-r--r--pjsip/src/pjsip/sip_tel_uri.c4
2 files changed, 10 insertions, 9 deletions
diff --git a/pjsip/src/pjsip/sip_auth_client.c b/pjsip/src/pjsip/sip_auth_client.c
index 4bde8539..3cea533b 100644
--- a/pjsip/src/pjsip/sip_auth_client.c
+++ b/pjsip/src/pjsip/sip_auth_client.c
@@ -920,13 +920,13 @@ PJ_DEF(pj_status_t) pjsip_auth_clt_init_req( pjsip_auth_clt_sess *sess,
* or add an empty authorization header.
*/
unsigned i;
- char *uri_str;
- int len;
+ pj_str_t uri;
- uri_str = (char*)pj_pool_alloc(tdata->pool, PJSIP_MAX_URL_SIZE);
- len = pjsip_uri_print(PJSIP_URI_IN_REQ_URI, tdata->msg->line.req.uri,
- uri_str, PJSIP_MAX_URL_SIZE);
- if (len < 1 || len >= PJSIP_MAX_URL_SIZE)
+ uri.ptr = (char*)pj_pool_alloc(tdata->pool, PJSIP_MAX_URL_SIZE);
+ uri.slen = pjsip_uri_print(PJSIP_URI_IN_REQ_URI,
+ tdata->msg->line.req.uri,
+ uri.ptr, PJSIP_MAX_URL_SIZE);
+ if (uri.slen < 1 || uri.slen >= PJSIP_MAX_URL_SIZE)
return PJSIP_EURITOOLONG;
for (i=0; i<sess->cred_cnt; ++i) {
@@ -946,8 +946,7 @@ PJ_DEF(pj_status_t) pjsip_auth_clt_init_req( pjsip_auth_clt_sess *sess,
&c->username);
pj_strdup(tdata->pool, &hs->credential.digest.realm,
&c->realm);
- pj_strdup2(tdata->pool, &hs->credential.digest.uri,
- uri_str);
+ pj_strdup(tdata->pool, &hs->credential.digest.uri, &uri);
pj_strdup(tdata->pool, &hs->credential.digest.algorithm,
&sess->pref.algorithm);
diff --git a/pjsip/src/pjsip/sip_tel_uri.c b/pjsip/src/pjsip/sip_tel_uri.c
index c6bb5ba2..606e18c3 100644
--- a/pjsip/src/pjsip/sip_tel_uri.c
+++ b/pjsip/src/pjsip/sip_tel_uri.c
@@ -182,7 +182,7 @@ static pj_ssize_t tel_uri_print( pjsip_uri_context_e context,
{
int printed;
char *startbuf = buf;
- char *endbuf = buf+size;
+ char *endbuf = buf+size-1;
const pjsip_parser_const_t *pc = pjsip_parser_const();
PJ_UNUSED_ARG(context);
@@ -217,6 +217,8 @@ static pj_ssize_t tel_uri_print( pjsip_uri_context_e context,
return -1;
buf += printed;
+ *buf = '\0';
+
return (buf-startbuf);
}