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
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);