From aa47f8186cbc068232e23b92a6966be9bd23e4bb Mon Sep 17 00:00:00 2001 From: Casper Beyer Date: Fri, 26 Feb 2021 01:35:10 +0800 Subject: feat(runtime): stabilize Deno.link and Deno.linkSync (#9417) This commit makes "Deno.link" and "Deno.linkSync" stable. The permission required has been changed to read-write to ensure one cannot escape the sandbox. --- runtime/ops/fs.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'runtime/ops') diff --git a/runtime/ops/fs.rs b/runtime/ops/fs.rs index 629afbfe6..5f5425dfa 100644 --- a/runtime/ops/fs.rs +++ b/runtime/ops/fs.rs @@ -1140,13 +1140,14 @@ fn op_link_sync( args: Value, _zero_copy: &mut [ZeroCopyBuf], ) -> Result { - super::check_unstable(state, "Deno.link"); let args: LinkArgs = serde_json::from_value(args)?; let oldpath = PathBuf::from(&args.oldpath); let newpath = PathBuf::from(&args.newpath); let permissions = state.borrow::(); permissions.check_read(&oldpath)?; + permissions.check_write(&oldpath)?; + permissions.check_read(&newpath)?; permissions.check_write(&newpath)?; debug!("op_link_sync {} {}", oldpath.display(), newpath.display()); @@ -1159,8 +1160,6 @@ async fn op_link_async( args: Value, _zero_copy: BufVec, ) -> Result { - super::check_unstable2(&state, "Deno.link"); - let args: LinkArgs = serde_json::from_value(args)?; let oldpath = PathBuf::from(&args.oldpath); let newpath = PathBuf::from(&args.newpath); @@ -1169,6 +1168,8 @@ async fn op_link_async( let state = state.borrow(); let permissions = state.borrow::(); permissions.check_read(&oldpath)?; + permissions.check_write(&oldpath)?; + permissions.check_read(&newpath)?; permissions.check_write(&newpath)?; } -- cgit v1.2.3