Skip to content

Commit

Permalink
Auto merge of rust-lang#14402 - Veykril:project-json-sym-link, r=Veykril
Browse files Browse the repository at this point in the history
internal: Reject symlinks in project-json

cc rust-lang/rust-analyzer#14168
  • Loading branch information
bors committed Mar 25, 2023
2 parents 68aa133 + c01ba4a commit fc84849
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion crates/project-model/src/workspace.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
use std::{collections::VecDeque, fmt, fs, process::Command, sync::Arc};

use anyhow::{format_err, Context, Result};
use anyhow::{bail, format_err, Context, Result};
use base_db::{
CrateDisplayName, CrateGraph, CrateId, CrateName, CrateOrigin, Dependency, Edition, Env,
FileId, LangCrateOrigin, ProcMacroLoadResult, TargetLayoutLoadResult,
Expand Down Expand Up @@ -154,6 +154,12 @@ impl ProjectWorkspace {
) -> Result<ProjectWorkspace> {
let res = match manifest {
ProjectManifest::ProjectJson(project_json) => {
let metadata = fs::symlink_metadata(&project_json).with_context(|| {
format!("Failed to read json file {}", project_json.display())
})?;
if metadata.is_symlink() {
bail!("The project-json may not currently point to a symlink");
}
let file = fs::read_to_string(&project_json).with_context(|| {
format!("Failed to read json file {}", project_json.display())
})?;
Expand Down

0 comments on commit fc84849

Please sign in to comment.