From e0ad1f9076f322f18b54c4f1e0894a9cdd52937c Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 24 Mar 2014 23:42:30 +0300 Subject: Fix memory corruption if use map patch layers. --- src/resources/mapreader.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/resources/mapreader.cpp') diff --git a/src/resources/mapreader.cpp b/src/resources/mapreader.cpp index 4da901b09..6d7591d1d 100644 --- a/src/resources/mapreader.cpp +++ b/src/resources/mapreader.cpp @@ -202,6 +202,7 @@ void MapReader::addLayerToList(const std::string &fileName) return; } + int cnt = 0; for_each_xml_child_node(childNode, node) { if (!xmlNameEqual(childNode, "layer")) @@ -213,8 +214,10 @@ void MapReader::addLayerToList(const std::string &fileName) logger->log("found patch layer: " + name); mKnownLayers[name] = childNode; mKnownDocs.insert(doc); + cnt ++; } - delete doc; + if (!cnt) + delete doc; } Map *MapReader::readMap(const std::string &restrict filename, -- cgit v1.2.3-60-g2f50