From b642b486035b50539b7b3aea71bb5bee863f9ba4 Mon Sep 17 00:00:00 2001 From: Jan Steemann Date: Thu, 11 Oct 2012 14:08:38 +0200 Subject: [PATCH] fixed memory issues --- lib/Basics/ProgramOptions.cpp | 8 ++++++-- lib/BasicsC/csv.c | 6 +++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/Basics/ProgramOptions.cpp b/lib/Basics/ProgramOptions.cpp index d0b5879418..7c3e10049a 100644 --- a/lib/Basics/ProgramOptions.cpp +++ b/lib/Basics/ProgramOptions.cpp @@ -299,11 +299,15 @@ ProgramOptions::~ProgramOptions () { } for (map::iterator i = _valuesVector.begin(); i != _valuesVector.end(); ++i) { - TRI_FreeVectorString(TRI_CORE_MEM_ZONE, i->second); + if ((*i).second != 0) { + TRI_FreeVectorString(TRI_CORE_MEM_ZONE, (*i).second); + } } for (map::iterator i = _valuesBool.begin(); i != _valuesBool.end(); ++i) { - TRI_Free(TRI_CORE_MEM_ZONE, i->second); + if ((*i).second != 0) { + TRI_Free(TRI_CORE_MEM_ZONE, (*i).second); + } } } diff --git a/lib/BasicsC/csv.c b/lib/BasicsC/csv.c index 049acb75d6..3b421e84d6 100644 --- a/lib/BasicsC/csv.c +++ b/lib/BasicsC/csv.c @@ -203,7 +203,7 @@ int TRI_ParseCsvString2 (TRI_csv_parser_t* parser, char const* line, size_t leng parser->_nMemmove++; } - // rellay not enough room + // really not enough room else { l2 = parser->_stop - parser->_start; l3 = parser->_end - parser->_begin + length; @@ -363,7 +363,7 @@ int TRI_ParseCsvString2 (TRI_csv_parser_t* parser, char const* line, size_t leng if (ptr < parser->_stop) { // found separator - if (strstr(ptr, parser->_separator) == ptr) { + if (ptr + parser->_separatorLength < parser->_stop && memcmp(ptr, parser->_separator, parser->_separatorLength) == 0) { *qtr = '\0'; parser->add(parser, parser->_start, parser->_row, parser->_column, false); @@ -417,7 +417,7 @@ int TRI_ParseCsvString2 (TRI_csv_parser_t* parser, char const* line, size_t leng } // found separator - if (strstr(ptr, parser->_separator) == ptr) { + if (ptr + parser->_separatorLength < parser->_stop && memcmp(ptr, parser->_separator, parser->_separatorLength) == 0) { *qtr = '\0'; parser->add(parser, parser->_start, parser->_row, parser->_column, true);