diff options
| author | Nayeem Rahman <muhammed.9939@gmail.com> | 2019-08-13 14:39:01 +0100 |
|---|---|---|
| committer | Ryan Dahl <ry@tinyclouds.org> | 2019-08-13 09:39:01 -0400 |
| commit | 1947f572d735096c1ccd7de2c386b8289c287701 (patch) | |
| tree | 71df928d77e790cb2cd37a7c835917030c1d7721 /cli | |
| parent | c3afa557515c64610b23ee460f8c6251de421f1a (diff) | |
Fix permission requirements for Deno.rename() and Deno.link() (#2737)
Diffstat (limited to 'cli')
| -rw-r--r-- | cli/ops.rs | 9 |
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 || { |
