summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2019-01-08 14:42:53 -0500
committerGitHub <noreply@github.com>2019-01-08 14:42:53 -0500
commit9ff6bca86388dab2cfa26e1712822f105985425e (patch)
tree217010de54c04e12e19bd3b1f693e4e20baeee64 /src
parent2558d6e184b92a2e8c642b60f5c2e4511d92b08b (diff)
Isolate::execute_mod wrap filename in CString (#1479)
When we called js_filename.as_ptr() without using CString it wasn't necessarally null terminated, which was creating spurious failures.
Diffstat (limited to 'src')
-rw-r--r--src/isolate.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/isolate.rs b/src/isolate.rs
index 6bdf32c1d..a2e5ae275 100644
--- a/src/isolate.rs
+++ b/src/isolate.rs
@@ -235,7 +235,9 @@ impl Isolate {
let out = self.state.dir.code_fetch(js_filename, ".").unwrap();
debug!("module_resolve complete {}", out.filename);
- // TODO js_source is not null terminated, therefore the clone.
+ let filename = CString::new(js_filename).unwrap();
+ let filename_ptr = filename.as_ptr() as *const i8;
+
let js_source = CString::new(out.js_source().clone()).unwrap();
let js_source_ptr = js_source.as_ptr() as *const i8;
@@ -243,7 +245,7 @@ impl Isolate {
libdeno::deno_execute_mod(
self.libdeno_isolate,
self.as_raw_ptr(),
- js_filename.as_ptr() as *const i8,
+ filename_ptr,
js_source_ptr,
)
};