From bfc6b299893a0034c3f931ec1291c4606af85ae1 Mon Sep 17 00:00:00 2001 From: Stefan Siegl Date: Sat, 1 Aug 2015 19:07:45 +0200 Subject: [PATCH] Use emalloc/estrdup/efree in v8js_commonjs.cc + fix memory leak --- v8js_commonjs.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/v8js_commonjs.cc b/v8js_commonjs.cc index a3ca53f..41155b3 100644 --- a/v8js_commonjs.cc +++ b/v8js_commonjs.cc @@ -24,7 +24,7 @@ extern "C" { static void v8js_commonjs_split_terms(char *identifier, std::vector &terms) { - char *term = (char *)malloc(PATH_MAX), *ptr = term; + char *term = (char *) emalloc(PATH_MAX), *ptr = term; // Initialise the term string *term = 0; @@ -34,7 +34,7 @@ static void v8js_commonjs_split_terms(char *identifier, std::vector &ter if (strlen(term) > 0) { // Terminate term string and add to terms vector *ptr++ = 0; - terms.push_back(strdup(term)); + terms.push_back(estrdup(term)); // Reset term string memset(term, 0, strlen(term)); @@ -50,12 +50,10 @@ static void v8js_commonjs_split_terms(char *identifier, std::vector &ter if (strlen(term) > 0) { // Terminate term string and add to terms vector *ptr++ = 0; - terms.push_back(strdup(term)); + terms.push_back(estrdup(term)); } - if (term > 0) { - free(term); - } + efree(term); } void v8js_commonjs_normalise_identifier(char *base, char *identifier, char *normalised_path, char *module_name) @@ -92,6 +90,8 @@ void v8js_commonjs_normalise_identifier(char *base, char *identifier, char *norm *module_name = 0; strcat(module_name, normalised_terms.back()); + + efree(normalised_terms.back()); normalised_terms.pop_back(); for (std::vector::iterator it = normalised_terms.begin(); it != normalised_terms.end(); it++) {