summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
authorNayeem Rahman <muhammed.9939@gmail.com>2019-08-13 14:39:01 +0100
committerRyan Dahl <ry@tinyclouds.org>2019-08-13 09:39:01 -0400
commit1947f572d735096c1ccd7de2c386b8289c287701 (patch)
tree71df928d77e790cb2cd37a7c835917030c1d7721 /cli
parentc3afa557515c64610b23ee460f8c6251de421f1a (diff)
Fix permission requirements for Deno.rename() and Deno.link() (#2737)
Diffstat (limited to 'cli')
-rw-r--r--cli/ops.rs9
1 files changed, 7 insertions, 2 deletions
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 || {