Просмотр исходного кода

OpenDDLParser: Fix potential memory leak

Turo Lamminen 7 лет назад
Родитель
Сommit
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;
         }