Description
I have not reviewed all the code(I needed specifically only these 2 functions) but at least home_dir()
and temp_dir()
are affected by this issue.
Let's take temp_dir
as an example here.
It relies on the TMPDIR
variable to be defined, otherwise it falls back to /tmp
(not on Android).
My machine is on Linux and TMPDIR
is not defined, which means that Rust
falls back to /tmp
, which is OK.
The issue is that if I do: export TMPDIR
- now temp_dir
will reliably return PathBuf::from("")
.
Same goes for export HOME
-> home_dir
-> Some(PathBuf::from(""))
.
As an example: it's not unusual for a bare-bones Linux container to have HOME
undefined or just set to export HOME=
.
I think that all the functions that have a fallback when an environment variable is not defined, should check if the string is not empty - if it is, then the functions should use the same fallback.
Pinging @alexcrichton