Canonicalize executable path

When looking up the runtime/ directory relative to the executable path,
canonicalize the path first in case the executable is a symbolic link.

Fixes #3768
This commit is contained in:
Ben Noordhuis 2022-09-11 09:13:45 +02:00 committed by Benoît Cortier
parent ec81ec1e8d
commit b5be72bff7

View file

@ -42,8 +42,10 @@ pub fn runtime_dir() -> PathBuf {
}
// fallback to location of the executable being run
// canonicalize the path in case the executable is symlinked
std::env::current_exe()
.ok()
.and_then(|path| std::fs::canonicalize(path).ok())
.and_then(|path| path.parent().map(|path| path.to_path_buf().join(RT_DIR)))
.unwrap()
}