summaryrefslogtreecommitdiff
path: root/res
diff options
context:
space:
mode:
authorMark Michelson <mmichelson@digium.com>2013-08-29 22:54:05 +0000
committerMark Michelson <mmichelson@digium.com>2013-08-29 22:54:05 +0000
commitb5f61b560894bb632665828ce1809cd873446433 (patch)
treef4b3afe52a1e39cd91d158cbd66152f91a55dedd /res
parentd7b9a702d8c3705bf6c736d2df166f51981fc006 (diff)
Fix method for creating activities string in PIDF bodies.
The previous method did not allocate enough space to create the entire string, but adjusted the string's slen value to be larger than the actual allocation. This resulted in garbled text in NOTIFY requests from Asterisk. This method allocates the proper amount of space first and then writes the content into the buffer. ........ Merged revisions 397960 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@397962 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res')
-rw-r--r--res/res_pjsip_pidf.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/res/res_pjsip_pidf.c b/res/res_pjsip_pidf.c
index 1891e54cb..45dcb7757 100644
--- a/res/res_pjsip_pidf.c
+++ b/res/res_pjsip_pidf.c
@@ -159,8 +159,11 @@ static void add_non_standard(pj_pool_t *pool, pj_xml_node *node, const char *pid
if (pidfstate[0] != '-') {
pj_xml_node *activities = create_node(pool, status, "ep:activities");
- pj_strdup2(pool, &activities->content, "ep:");
- pj_strcat2(&activities->content, pidfstate);
+ size_t str_size = sizeof("ep:") + strlen(pidfstate);
+
+ activities->content.ptr = pj_pool_alloc(pool, str_size);
+ activities->content.slen = pj_ansi_snprintf(activities->content.ptr, str_size,
+ "ep:%s", pidfstate);
}
create_attr(pool, node, XMLNS_PP, XMLNS_PERSON);