l10ntools/source/treemerge.cxx | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)
New commits: commit bf9ce4e056b521db8e8c997a56317ab15963dce9 Author: Julien Nabet <serval2...@yahoo.fr> AuthorDate: Mon Nov 14 18:36:03 2022 +0100 Commit: Julien Nabet <serval2...@yahoo.fr> CommitDate: Tue Nov 15 19:38:32 2022 +0100 asan: fix leak in lcl_MergeLevel Direct leak of 2000 byte(s) in 2 object(s) allocated from: 0 0x55906afe399e in malloc (/home/julien/lo/libo_perf/workdir/LinkTarget/Executable/treex+0xff99e) (BuildId: 5b19224d0ca2120a) 1 0x7fd51a4abfd7 in xmlEncodeSpecialChars (/lib/x86_64-linux-gnu/libxml2.so.2+0x31fd7) (BuildId: 008b52a46ddf3013589362f7f678f7a6c8dd1e56) 2 0x55906b023403 in (anonymous namespace)::lcl_MergeLevel(_xmlDoc*, _xmlNode*, unsigned char const*, MergeDataFile*, rtl::OString const&, rtl::OString const&) treemerge.cxx 3 0x55906b0232d4 in (anonymous namespace)::lcl_MergeLevel(_xmlDoc*, _xmlNode*, unsigned char const*, MergeDataFile*, rtl::OString const&, rtl::OString const&) treemerge.cxx 4 0x55906b0232d4 in (anonymous namespace)::lcl_MergeLevel(_xmlDoc*, _xmlNode*, unsigned char const*, MergeDataFile*, rtl::OString const&, rtl::OString const&) treemerge.cxx 5 0x55906b0226ef in TreeParser::Merge(rtl::OString const&, rtl::OString const&, rtl::OString const&) treemerge.cxx 6 0x55906b02c0dd in sal_main_with_args(int, char**) treex.cxx 7 0x55906b02baad in main (/home/julien/lo/libo_perf/workdir/LinkTarget/Executable/treex+0x147aad) (BuildId: 5b19224d0ca2120a) 8 0x7fd519e46189 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16 Change-Id: I9882cd63b91967d9b8998ba25545c11a3168e739 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142717 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2...@yahoo.fr> diff --git a/l10ntools/source/treemerge.cxx b/l10ntools/source/treemerge.cxx index ff48aeda6b74..860c85b38598 100644 --- a/l10ntools/source/treemerge.cxx +++ b/l10ntools/source/treemerge.cxx @@ -116,11 +116,10 @@ namespace helper::xmlStrToOString( sTitle ). replaceAll("$[officename]","%PRODUCTNAME"). replaceAll("$[officeversion]","%PRODUCTVERSION"); - xmlNodeSetContent( - pReturn, - xmlEncodeSpecialChars( nullptr, - reinterpret_cast<const xmlChar*>( - sNewTitle.getStr() ))); + xmlChar *xmlString = xmlEncodeSpecialChars(nullptr, + reinterpret_cast<const xmlChar*>( sNewTitle.getStr() )); + xmlNodeSetContent( pReturn, xmlString); + xmlFree( xmlString ); xmlFree( sTitle ); break; }