[fpc-pascal] Memory Leak's in XMLRead unit
African Wild Dog
paintedlycaon at gmail.com
Tue Nov 7 23:19:42 CET 2017
Hello,
Using ReadXMLFile function from XMLRead unit generates memory leaks when
trying to read a invalid XML content.
==== CODE ====
program xml_leak_test;
uses
heaptrc,
Classes,
DOM,
XMLRead;
var
XMLDocument: TXMLDocument;
InvalidStream: TStringStream;
const
INVALID_XML_CONTENT = '<<<INVALID XML>>>';
begin
SetHeapTraceOutput('heap.trc');
XMLDocument := nil;
InvalidStream := TStringStream.Create(INVALID_XML_CONTENT);
try
ReadXMLFile(XMLDocument, InvalidStream);
finally
InvalidStream.Free;
XMLDocument.Free;
end;
end.
=======
HEAP trace content:
==== HEAP ===
Heap dump by heaptrc unit
105 memory blocks allocated : 18943/19216
101 memory blocks freed : 18639/18912
4 unfreed memory blocks : 304
True heap size : 491520 (192 used in System startup)
True free heap : 490400
Should be : 490512
Call trace for block $00000000011EA650 size 40
$000000010000B7AB
$0000000100010A62
$0000000100010B6C
$000000007720812D
$00000000771F855F
$000000007722BCB8
$000007FEFD0BA06D
$BAADF00DBAADF00D
Call trace for block $0000000001200B80 size 128
$00000001000141E6
$000000010000B78B
$00000001000107D7
$0000000100010896
$0000000100037D56
$0000000100037C6E
$0000000100037A82
$BAADF00DBAADF00D
Call trace for block $0000000001208B70 size 88
$0000000100014347
$000000010000B78B
$0000000100005E15
$000000010000513A
$000000010002B9E8
$000000010002C000
$000000010002E4AF
$BAADF00DBAADF00D
Call trace for block $00000000011EA350 size 48
$000000010000B6F2
$00000001000090A7
$00000001000360A1
$0000000100037C42
$0000000100037A82
$000000010003786B
$00000001000389F8
$BAADF00DBAADF00D
==========
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20171107/582b4ba0/attachment.html>
More information about the fpc-pascal
mailing list