diff options
author | Leo Kettmeir <crowlkats@toaxl.com> | 2022-01-04 21:55:06 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-04 21:55:06 +0100 |
commit | b46da660563b175722937d9f29d45029bd6a0a74 (patch) | |
tree | e23d18bb70ba54ddba87838adb067fa1136046d8 /runtime/ops/signal.rs | |
parent | 9872fbf189b7f843b15442731f2e18ffafc3a284 (diff) |
fix(signals): prevent panic when listening to forbidden signals (#13273)
Diffstat (limited to 'runtime/ops/signal.rs')
-rw-r--r-- | runtime/ops/signal.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/runtime/ops/signal.rs b/runtime/ops/signal.rs index db30c66d8..f260c611c 100644 --- a/runtime/ops/signal.rs +++ b/runtime/ops/signal.rs @@ -181,8 +181,14 @@ fn op_signal_bind( ) -> Result<ResourceId, AnyError> { super::check_unstable(state, "Deno.signal"); let signo = signal_str_to_int(&sig)?; + if signal_hook_registry::FORBIDDEN.contains(&signo) { + return Err(type_error(format!( + "Binding to signal '{}' is not allowed", + sig + ))); + } let resource = SignalStreamResource { - signal: AsyncRefCell::new(signal(SignalKind::from_raw(signo)).unwrap()), + signal: AsyncRefCell::new(signal(SignalKind::from_raw(signo))?), cancel: Default::default(), }; let rid = state.resource_table.add(resource); |