diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2022-08-24 18:07:49 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-24 18:07:49 +0200 |
commit | 6bb72a80863ac3913d32ea21aae32dd327ce6b71 (patch) | |
tree | 9a94d2df9ba46eec6a992fc749c4b80fbe62c11b /runtime | |
parent | 684aabbc252fe895e8f5de82c5fa4b7b6290f3ea (diff) |
feat(unstable): add more permission checks for ext/node/ (#15581)
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/build.rs | 11 | ||||
-rw-r--r-- | runtime/permissions.rs | 6 | ||||
-rw-r--r-- | runtime/web_worker.rs | 2 | ||||
-rw-r--r-- | runtime/worker.rs | 2 |
4 files changed, 18 insertions, 3 deletions
diff --git a/runtime/build.rs b/runtime/build.rs index 5e8132656..a9ba09825 100644 --- a/runtime/build.rs +++ b/runtime/build.rs @@ -125,6 +125,15 @@ mod not_docs { } } + impl deno_node::NodePermissions for Permissions { + fn check_read( + &mut self, + _p: &Path, + ) -> Result<(), deno_core::error::AnyError> { + unreachable!("snapshotting!") + } + } + impl deno_net::NetPermissions for Permissions { fn check_net<T: AsRef<str>>( &mut self, @@ -167,7 +176,7 @@ mod not_docs { deno_broadcast_channel::InMemoryBroadcastChannel::default(), false, // No --unstable. ), - deno_node::init(false, None), // No --unstable. + deno_node::init::<Permissions>(false, None), // No --unstable. deno_ffi::init::<Permissions>(false), deno_net::init::<Permissions>( None, false, // No --unstable. diff --git a/runtime/permissions.rs b/runtime/permissions.rs index 0a5560833..5893f44d4 100644 --- a/runtime/permissions.rs +++ b/runtime/permissions.rs @@ -1322,6 +1322,12 @@ impl deno_flash::FlashPermissions for Permissions { } } +impl deno_node::NodePermissions for Permissions { + fn check_read(&mut self, path: &Path) -> Result<(), AnyError> { + self.read.check(path) + } +} + impl deno_net::NetPermissions for Permissions { fn check_net<T: AsRef<str>>( &mut self, diff --git a/runtime/web_worker.rs b/runtime/web_worker.rs index 7ef280252..d4a96633d 100644 --- a/runtime/web_worker.rs +++ b/runtime/web_worker.rs @@ -423,7 +423,7 @@ impl WebWorker { unstable, options.unsafely_ignore_certificate_errors.clone(), ), - deno_node::init(unstable, options.npm_resolver), + deno_node::init::<Permissions>(unstable, options.npm_resolver), ops::os::init_for_worker(), ops::permissions::init(), ops::process::init(), diff --git a/runtime/worker.rs b/runtime/worker.rs index ad2bcdc17..e0f54e09d 100644 --- a/runtime/worker.rs +++ b/runtime/worker.rs @@ -165,7 +165,7 @@ impl MainWorker { unstable, options.unsafely_ignore_certificate_errors.clone(), ), - deno_node::init(unstable, options.npm_resolver), + deno_node::init::<Permissions>(unstable, options.npm_resolver), ops::os::init(exit_code.clone()), ops::permissions::init(), ops::process::init(), |