diff options
author | Kevin (Kun) "Kassimo" Qian <kevinkassimo@gmail.com> | 2019-01-18 12:15:09 -0800 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2019-01-18 15:15:09 -0500 |
commit | f9b167deb07a650590b7f1eef8fe86bf9e22d211 (patch) | |
tree | 642b10701c8e252bbb8655c8dbc255e8c3efb01a /src | |
parent | 315e4abd7e88c428e78c006ccf2dfdb499911a05 (diff) |
Avoid crashes on ES module resolution when module not found (#1546)
Diffstat (limited to 'src')
-rw-r--r-- | src/isolate.rs | 11 |
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; |