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
This commit is contained in:
Mark Michelson
2013-08-29 22:54:05 +00:00
parent d7b9a702d8
commit b5f61b5608
+5 -2
View File
@@ -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);