summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKevin (Kun) "Kassimo" Qian <kevinkassimo@gmail.com>2019-01-18 12:15:09 -0800
committerRyan Dahl <ry@tinyclouds.org>2019-01-18 15:15:09 -0500
commitf9b167deb07a650590b7f1eef8fe86bf9e22d211 (patch)
tree642b10701c8e252bbb8655c8dbc255e8c3efb01a /src
parent315e4abd7e88c428e78c006ccf2dfdb499911a05 (diff)
Avoid crashes on ES module resolution when module not found (#1546)
Diffstat (limited to 'src')
-rw-r--r--src/isolate.rs11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/isolate.rs b/src/isolate.rs
index bbd52c64d..5100ac490 100644
--- a/src/isolate.rs
+++ b/src/isolate.rs
@@ -403,8 +403,15 @@ extern "C" fn resolve_cb(
debug!("module_resolve callback {} {}", specifier, referrer);
let isolate = unsafe { Isolate::from_raw_ptr(user_data) };
- let out =
- code_fetch_and_maybe_compile(&isolate.state, specifier, referrer).unwrap();
+ let maybe_out =
+ code_fetch_and_maybe_compile(&isolate.state, specifier, referrer);
+
+ if maybe_out.is_err() {
+ // Resolution failure
+ return;
+ }
+
+ let out = maybe_out.unwrap();
let filename = CString::new(out.filename.clone()).unwrap();
let filename_ptr = filename.as_ptr() as *const i8;