Переглянути джерело

Fix use-after-free on module reuse

Stefan Siegl 9 роки тому
батько
коміт
2ce7e420a7
1 змінених файлів з 4 додано та 3 видалено
  1. 4 3
      v8js_methods.cc

+ 4 - 3
v8js_methods.cc

@@ -254,12 +254,13 @@ V8JS_METHOD(require)
 
     // If we have already loaded and cached this module then use it
 	if (c->modules_loaded.count(normalised_module_id) > 0) {
-		efree(normalised_module_id);
-		efree(normalised_path);
-
 		v8::Persistent<v8::Object> newobj;
 		newobj.Reset(isolate, c->modules_loaded[normalised_module_id]);
 		info.GetReturnValue().Set(newobj);
+
+		efree(normalised_module_id);
+		efree(normalised_path);
+
 		return;
 	}