diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2019-01-08 14:42:53 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-08 14:42:53 -0500 |
commit | 9ff6bca86388dab2cfa26e1712822f105985425e (patch) | |
tree | 217010de54c04e12e19bd3b1f693e4e20baeee64 | |
parent | 2558d6e184b92a2e8c642b60f5c2e4511d92b08b (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.
-rw-r--r-- | src/isolate.rs | 6 |
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, ) }; |