From 1947f572d735096c1ccd7de2c386b8289c287701 Mon Sep 17 00:00:00 2001 From: Nayeem Rahman Date: Tue, 13 Aug 2019 14:39:01 +0100 Subject: Fix permission requirements for Deno.rename() and Deno.link() (#2737) --- cli/ops.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'cli') diff --git a/cli/ops.rs b/cli/ops.rs index d5da90567..166610bac 100644 --- a/cli/ops.rs +++ b/cli/ops.rs @@ -1404,10 +1404,13 @@ fn op_rename( ) -> CliOpResult { assert!(data.is_none()); let inner = base.inner_as_rename().unwrap(); - let (oldpath, _) = deno_fs::resolve_from_cwd(inner.oldpath().unwrap())?; + let (oldpath, oldpath_) = + deno_fs::resolve_from_cwd(inner.oldpath().unwrap())?; let (newpath, newpath_) = deno_fs::resolve_from_cwd(inner.newpath().unwrap())?; + state.check_read(&oldpath_)?; + state.check_write(&oldpath_)?; state.check_write(&newpath_)?; blocking(base.sync(), move || { @@ -1424,10 +1427,12 @@ fn op_link( ) -> CliOpResult { assert!(data.is_none()); let inner = base.inner_as_link().unwrap(); - let (oldname, _) = deno_fs::resolve_from_cwd(inner.oldname().unwrap())?; + let (oldname, oldpath_) = + deno_fs::resolve_from_cwd(inner.oldname().unwrap())?; let (newname, newname_) = deno_fs::resolve_from_cwd(inner.newname().unwrap())?; + state.check_read(&oldpath_)?; state.check_write(&newname_)?; blocking(base.sync(), move || { -- cgit v1.2.3