[asterisk-commits] mjordan: branch 10 r371491 - in /branches/10: ./ main/xmldoc.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Fri Aug 17 15:21:33 CDT 2012
Author: mjordan
Date: Fri Aug 17 15:21:30 2012
New Revision: 371491
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=371491
Log:
Fix memory leak in XML documentation
When formatting documentation fields, the XML documentation parser calls
xmldoc_get_formatted. This function allocates a string buffer at the
beginning of its routine. Unfortunately, on certain code paths, it also
calls xmldoc_string_cleanup, which assumes that it will create the string
buffer. The previously allocated string buffer is then leaked by the
xmldoc_string_cleanup routine.
Now: we don't do that.
(closes issue AST-932)
Reported by: Alexander Homig
........
Merged revisions 371469 from http://svn.asterisk.org/svn/asterisk/branches/1.8
Modified:
branches/10/ (props changed)
branches/10/main/xmldoc.c
Propchange: branches/10/
------------------------------------------------------------------------------
Binary property 'branch-1.8-merged' - no diff available.
Modified: branches/10/main/xmldoc.c
URL: http://svnview.digium.com/svn/asterisk/branches/10/main/xmldoc.c?view=diff&rev=371491&r1=371490&r2=371491
==============================================================================
--- branches/10/main/xmldoc.c (original)
+++ branches/10/main/xmldoc.c Fri Aug 17 15:21:30 2012
@@ -1798,14 +1798,16 @@
{
struct ast_xml_node *tmp;
const char *notcleanret, *tmpstr;
- struct ast_str *ret = ast_str_create(128);
+ struct ast_str *ret;
if (raw_output) {
+ /* xmldoc_string_cleanup will allocate the ret object */
notcleanret = ast_xml_get_text(node);
tmpstr = notcleanret;
xmldoc_string_cleanup(ast_skip_blanks(notcleanret), &ret, 0);
ast_xml_free_text(tmpstr);
} else {
+ ret = ast_str_create(128);
for (tmp = ast_xml_node_get_children(node); tmp; tmp = ast_xml_node_get_next(tmp)) {
/* if found, parse a <para> element. */
if (xmldoc_parse_para(tmp, "", "\n", &ret)) {
More information about the asterisk-commits
mailing list