summaryrefslogtreecommitdiff
path: root/cli/ops/fs.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/ops/fs.rs')
-rw-r--r--cli/ops/fs.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/cli/ops/fs.rs b/cli/ops/fs.rs
index 6b259e033..c46da6c04 100644
--- a/cli/ops/fs.rs
+++ b/cli/ops/fs.rs
@@ -245,12 +245,14 @@ struct ChdirArgs {
}
fn op_chdir(
- _state: &State,
+ state: &State,
args: Value,
_zero_copy: Option<ZeroCopyBuf>,
) -> Result<JsonOp, OpError> {
let args: ChdirArgs = serde_json::from_value(args)?;
- set_current_dir(&args.directory)?;
+ let d = PathBuf::from(&args.directory);
+ state.check_write(&d)?;
+ set_current_dir(&d)?;
Ok(JsonOp::Sync(json!({})))
}