Even Rouault created XERCESC-2221:
-------------------------------------
Summary: InMemMsgLoader::loadMsg(): fix memory leak when
transcoding fails
Key: XERCESC-2221
URL: https://issues.apache.org/jira/browse/XERCESC-2221
Project: Xerces-C++
Issue Type: Bug
Components: Utilities
Affects Versions: 3.2.3
Reporter: Even Rouault
Seen with the IconvGNU transcoder when parsing "<aaa.xsdopengis.net/gml\x96".
The reason is that XMLString::transcode(repText2, manager) throws a
TranscodingException
which causes the tmp1 string to leak.
{noformat}
0 0x8791409 in operator new(unsigned int)
/src/llvm-project/compiler-rt/lib/asan/asan_new_delete.cpp:99:3
1 0xbd147f7 in xercesc_4_0::MemoryManagerImpl::allocate(unsigned int)
gdal/xerces-c/src/xercesc/internal/MemoryManagerImpl.cpp:40:18
2 0xbe8c73e in xercesc_4_0::IconvGNULCPTranscoder::transcode(char const*,
xercesc_4_0::MemoryManager*)
gdal/xerces-c/src/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.cpp:870:32
3 0xbc22ca2 in xercesc_4_0::XMLString::transcode(char const*,
xercesc_4_0::MemoryManager*) gdal/xerces-c/src/xercesc/util/XMLString.cpp:621:25
4 0xbe8f4ad in xercesc_4_0::InMemMsgLoader::loadMsg(unsigned int, char16_t*,
unsigned int, char const*, char const*, char const*, char const*,
xercesc_4_0::MemoryManager*)
gdal/xerces-c/src/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.cpp:157:16
5 0xbc20175 in
xercesc_4_0::XMLException::loadExceptText(xercesc_4_0::XMLExcepts::Codes, char
const*, char const*, char const*, char const*)
gdal/xerces-c/src/xercesc/util/XMLException.cpp:241:23
6 0xbc48bee in xercesc_4_0::UTFDataFormatException::UTFDataFormatException(char
const*, unsigned long long, xercesc_4_0::XMLExcepts::Codes, char const*, char
const*, char const*, char const*, xercesc_4_0::MemoryManager*)
gdal/xerces-c/src/xercesc/util/UTFDataFormatException.hpp:31:1
7 0xbc4824e in xercesc_4_0::XMLUTF8Transcoder::transcodeFrom(unsigned char
const*, unsigned int, char16_t*, unsigned int, unsigned int&, unsigned char*)
gdal/xerces-c/src/xercesc/util/XMLUTF8Transcoder.cpp:182:13
8 0xbd27d7e in xercesc_4_0::XMLReader::xcodeMoreChars(char16_t*, unsigned
char*, unsigned int) gdal/xerces-c/src/xercesc/internal/XMLReader.cpp:1926:34
9 0xbd271dd in xercesc_4_0::XMLReader::refreshCharBuffer()
gdal/xerces-c/src/xercesc/internal/XMLReader.cpp:571:19
10 0xbd15c63 in xercesc_4_0::XMLReader::peekNextChar(char16_t&)
gdal/xerces-c/src/xercesc/internal/XMLReader.hpp:767:14
11 0xbd15aaf in xercesc_4_0::ReaderMgr::peekNextChar()
gdal/xerces-c/src/xercesc/internal/ReaderMgr.cpp:158:21
12 0xbd328da in xercesc_4_0::XMLScanner::scanProlog()
gdal/xerces-c/src/xercesc/internal/XMLScanner.cpp:1241:45
13 0xbd31ef4 in xercesc_4_0::XMLScanner::scanFirst(xercesc_4_0::InputSource
const&, xercesc_4_0::XMLPScanToken&)
gdal/xerces-c/src/xercesc/internal/XMLScanner.cpp:549:9
14 0xbdadcff in
xercesc_4_0::SAX2XMLReaderImpl::parseFirst(xercesc_4_0::InputSource const&,
xercesc_4_0::XMLPScanToken&)
gdal/xerces-c/src/xercesc/parsers/SAX2XMLReaderImpl.cpp:500:22 {noformat}
{{}}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]