summaryrefslogtreecommitdiff
path: root/pjmedia
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2007-12-17 12:16:08 +0000
committerBenny Prijono <bennylp@teluu.com>2007-12-17 12:16:08 +0000
commitb2a057941ada78ae228da21c311347d2d5469162 (patch)
tree0223b8e37a4bfefaf91d8714f163af500713fd02 /pjmedia
parent119e7e5189393cff34f20024937163c9d945ec4b (diff)
Fixed errors in SDP: 1) scanner is not initialized before pjmedia_sdp_parse() is called, 2) added null termination in attribute for more robustness
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1635 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia')
-rw-r--r--pjmedia/src/pjmedia/sdp.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/pjmedia/src/pjmedia/sdp.c b/pjmedia/src/pjmedia/sdp.c
index be6f8025..b814ccd1 100644
--- a/pjmedia/src/pjmedia/sdp.c
+++ b/pjmedia/src/pjmedia/sdp.c
@@ -248,6 +248,8 @@ PJ_DEF(pj_status_t) pjmedia_sdp_attr_get_rtpmap( const pjmedia_sdp_attr *attr,
PJ_ASSERT_RETURN(attr->value.slen != 0, PJMEDIA_SDP_EINATTR);
+ init_sdp_parser();
+
/* Check if input is null terminated, and null terminate if
* necessary. Unfortunately this may crash the application if
* attribute was allocated from a read-only memory location.
@@ -366,6 +368,8 @@ PJ_DEF(pj_status_t) pjmedia_sdp_attr_get_rtcp(const pjmedia_sdp_attr *attr,
PJ_ASSERT_RETURN(pj_strcmp2(&attr->name, "rtcp")==0, PJ_EINVALIDOP);
+ init_sdp_parser();
+
/* fmtp BNF:
* a=rtcp:<port> [nettype addrtype address]
*/
@@ -463,7 +467,7 @@ PJ_DEF(pj_status_t) pjmedia_sdp_rtpmap_to_attr(pj_pool_t *pool,
attr->value.slen = len;
attr->value.ptr = (char*) pj_pool_alloc(pool, attr->value.slen);
- pj_memcpy(attr->value.ptr, tempbuf, attr->value.slen);
+ pj_memcpy(attr->value.ptr, tempbuf, attr->value.slen+1);
*p_attr = attr;
return PJ_SUCCESS;