summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiong Sauw Ming <ming@teluu.com>2013-02-27 09:28:31 +0000
committerLiong Sauw Ming <ming@teluu.com>2013-02-27 09:28:31 +0000
commit726e581121af83014303521e4083ddd87fce7aa8 (patch)
tree6115e02b07192dd6826a84bfdd6390b381335099
parent706b050fefbbdf5d7b9a3d02285e379ec9561486 (diff)
Re #1558: backported r4209,r4210 to 1.x
git-svn-id: http://svn.pjsip.org/repos/pjproject/branches/1.x@4375 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--pjlib-util/src/pjlib-util/scanner.c1
-rw-r--r--pjsip/src/test/uri_test.c22
2 files changed, 22 insertions, 1 deletions
diff --git a/pjlib-util/src/pjlib-util/scanner.c b/pjlib-util/src/pjlib-util/scanner.c
index 6fc68a4e..0343ba5c 100644
--- a/pjlib-util/src/pjlib-util/scanner.c
+++ b/pjlib-util/src/pjlib-util/scanner.c
@@ -393,7 +393,6 @@ PJ_DEF(void) pj_scan_get_quotes(pj_scanner *scanner,
}
/* break from main loop if we have odd number of backslashes */
if (((unsigned)(q-r) & 0x01) == 1) {
- ++s;
break;
}
++s;
diff --git a/pjsip/src/test/uri_test.c b/pjsip/src/test/uri_test.c
index 72ce6126..eda3c0e9 100644
--- a/pjsip/src/test/uri_test.c
+++ b/pjsip/src/test/uri_test.c
@@ -67,6 +67,7 @@ static pjsip_uri *create_uri14( pj_pool_t *pool );
static pjsip_uri *create_uri15( pj_pool_t *pool );
static pjsip_uri *create_uri16( pj_pool_t *pool );
static pjsip_uri *create_uri17( pj_pool_t *pool );
+static pjsip_uri *create_uri18( pj_pool_t *pool );
static pjsip_uri *create_uri25( pj_pool_t *pool );
static pjsip_uri *create_uri26( pj_pool_t *pool );
static pjsip_uri *create_uri27( pj_pool_t *pool );
@@ -81,6 +82,7 @@ static pjsip_uri *create_uri35( pj_pool_t *pool );
static pjsip_uri *create_uri36( pj_pool_t *pool );
static pjsip_uri *create_uri37( pj_pool_t *pool );
static pjsip_uri *create_uri38( pj_pool_t *pool );
+static pjsip_uri *create_uri39( pj_pool_t *pool );
static pjsip_uri *create_dummy( pj_pool_t *pool );
#define ERR_NOT_EQUAL -1001
@@ -349,6 +351,12 @@ struct uri_test
"\xC0\x81 <sip:localhost>",
&create_uri38,
"\"\xC0\x81\" <sip:localhost>"
+ },
+ {
+ /* Even number of backslash before end quote in display name. */
+ PJ_SUCCESS,
+ "\"User\\\\\" <sip:localhost>",
+ &create_uri39,
}
};
@@ -759,6 +767,20 @@ static pjsip_uri *create_uri38( pj_pool_t *pool )
}
+/* "\"User\\\\\" <sip:localhost>" */
+static pjsip_uri *create_uri39(pj_pool_t *pool)
+{
+ pjsip_name_addr *name_addr = pjsip_name_addr_create(pool);
+ pjsip_sip_uri *url;
+
+ url = pjsip_sip_uri_create(pool, 0);
+ name_addr->uri = (pjsip_uri*) url;
+
+ pj_strdup2(pool, &name_addr->display, "User\\\\");
+ pj_strdup2(pool, &url->host, "localhost");
+ return (pjsip_uri*)name_addr;
+}
+
static pjsip_uri *create_dummy(pj_pool_t *pool)
{
PJ_UNUSED_ARG(pool);