rendered paste bodyIndex: main/xmldoc.c===================================================================--- main/xmldoc.c (revision 202567)+++ main/xmldoc.c (working copy)@@ -1835,7 +1835,7 @@ struct ast_xml_node *root_node; struct ast_xml_doc *tmpdoc; struct documentation_tree *doc_tree;- char *xmlpattern;+ char xmlpattern[512]; struct ast_config *cfg = NULL; struct ast_variable *var = NULL; struct ast_flags cnfflags = { 0 };@@ -1862,21 +1862,40 @@ /* register function to be run when asterisk finish. */ ast_register_atexit(xmldoc_unload_documentation); - /* Get every *-LANG.xml file inside $(ASTDATADIR)/documentation */- ast_asprintf(&xmlpattern, "%s/documentation{/thirdparty/,/}*-{%s,%.2s_??,%s}.xml", ast_config_AST_DATA_DIR,- documentation_language, documentation_language, default_documentation_language); globbuf.gl_offs = 0; /* initialize it to silence gcc */+ + snprintf(xmlpattern, sizeof(xmlpattern), "%s/documentation/thirdparty/*-%s.xml", + ast_config_AST_DATA_DIR, documentation_language); globret = glob(xmlpattern, MY_GLOB_FLAGS, NULL, &globbuf);+ snprintf(xmlpattern, sizeof(xmlpattern),"%s/documentation/*-%s.xml", + ast_config_AST_DATA_DIR, documentation_language);+ globret = glob(xmlpattern, MY_GLOB_FLAGS | GLOB_APPEND, NULL, &globbuf);+ snprintf(xmlpattern, sizeof(xmlpattern), "%s/documentation/*-%.2s_??.xml", + ast_config_AST_DATA_DIR, documentation_language);+ globret = glob(xmlpattern, MY_GLOB_FLAGS | GLOB_APPEND, NULL, &globbuf);+ snprintf(xmlpattern, sizeof(xmlpattern), "%s/documentation/*-%s.xml", + ast_config_AST_DATA_DIR, default_documentation_language);+ globret = glob(xmlpattern, MY_GLOB_FLAGS | GLOB_APPEND, NULL, &globbuf);+ snprintf(xmlpattern, sizeof(xmlpattern), "%s/documentation/thirdparty/*-%s.xml", + ast_config_AST_DATA_DIR, documentation_language);+ globret = glob(xmlpattern, MY_GLOB_FLAGS | GLOB_APPEND, NULL, &globbuf);+ snprintf(xmlpattern, sizeof(xmlpattern), "%s/documentation/thirdparty/*-%.2s_??.xml", + ast_config_AST_DATA_DIR, documentation_language);+ globret = glob(xmlpattern, MY_GLOB_FLAGS | GLOB_APPEND, NULL, &globbuf);+ snprintf(xmlpattern, sizeof(xmlpattern), "%s/documentation/thirdparty/*-%s.xml", + ast_config_AST_DATA_DIR, default_documentation_language);+ globret = glob(xmlpattern, MY_GLOB_FLAGS | GLOB_APPEND, NULL, &globbuf);++ /* Get every *-LANG.xml file inside $(ASTDATADIR)/documentation */+ //ast_asprintf(&xmlpattern, "%s/documentation{/thirdparty/,/}*-{%s,%.2s_??,%s}.xml", ast_config_AST_DATA_DIR,+ // documentation_language, documentation_language, default_documentation_language); if (globret == GLOB_NOSPACE) { ast_log(LOG_WARNING, "Glob Expansion of pattern '%s' failed: Not enough memory\n", xmlpattern);- ast_free(xmlpattern); return 1; } else if (globret == GLOB_ABORTED) { ast_log(LOG_WARNING, "Glob Expansion of pattern '%s' failed: Read error\n", xmlpattern);- ast_free(xmlpattern); return 1; }- ast_free(xmlpattern); AST_RWLIST_WRLOCK(&xmldoc_tree); /* loop over expanded files */