Преглед изворни кода

OpenDDLParser: Fix potential memory leak

Turo Lamminen пре 7 година
родитељ
комит
eb5f47f5c5
1 измењених фајлова са 4 додато и 3 уклоњено
  1. 4 3
      contrib/openddlparser/code/OpenDDLParser.cpp

+ 4 - 3
contrib/openddlparser/code/OpenDDLParser.cpp

@@ -27,6 +27,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include <iostream>
 #include <sstream>
 #include <algorithm>
+#include <memory>
 #include <math.h>
 
 #ifdef _WIN32
@@ -275,12 +276,12 @@ char *OpenDDLParser::parseHeader( char *in, char *end ) {
         }
         delete id;
 
-		Name *name(ddl_nullptr);
-		in = OpenDDLParser::parseName(in, end, &name);
+		Name *name_(ddl_nullptr);
+		in = OpenDDLParser::parseName(in, end, &name_);
+		std::unique_ptr<Name> name(name_);
         if( ddl_nullptr != name && ddl_nullptr != node ) {
             const std::string nodeName( name->m_id->m_buffer );
             node->setName( nodeName );
-            delete name;
         }