diff options
| author | Jacob Pratt <jacob@jhpratt.dev> | 2025-07-26 22:42:32 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-26 22:42:32 -0400 |
| commit | 85e5100ad44b7ce4001394dc6bc713d97b86c101 (patch) | |
| tree | 586bfd8a06578d9603039ca837ac5c6cb8f3edb1 /library | |
| parent | 283a0746a244a88503fed61844f44df925ccdbb6 (diff) | |
| parent | 921b6c02aa01b40b9dfea318f4ae7ec1a9811499 (diff) | |
| download | rust-85e5100ad44b7ce4001394dc6bc713d97b86c101.tar.gz rust-85e5100ad44b7ce4001394dc6bc713d97b86c101.zip | |
Rollup merge of #141840 - ChrisDenton:noempty, r=ChrisDenton
If `HOME` is empty, use the fallback instead This is a minor change in the `home_dir` api. An empty path is never (or should never be) valid so if the `HOME` environment variable is empty then let's use the fallback instead. r? libs-api
Diffstat (limited to 'library')
| -rw-r--r-- | library/std/src/env.rs | 2 | ||||
| -rw-r--r-- | library/std/src/sys/pal/unix/os.rs | 5 |
2 files changed, 5 insertions, 2 deletions
diff --git a/library/std/src/env.rs b/library/std/src/env.rs index 6d7d576b32a..9f17ff76445 100644 --- a/library/std/src/env.rs +++ b/library/std/src/env.rs @@ -617,7 +617,7 @@ impl Error for JoinPathsError { /// # Unix /// /// - Returns the value of the 'HOME' environment variable if it is set -/// (including to an empty string). +/// (and not an empty string). /// - Otherwise, it tries to determine the home directory by invoking the `getpwuid_r` function /// using the UID of the current user. An empty home directory field returned from the /// `getpwuid_r` function is considered to be a valid value. diff --git a/library/std/src/sys/pal/unix/os.rs b/library/std/src/sys/pal/unix/os.rs index 850bdfdf5b5..0e68313cc3e 100644 --- a/library/std/src/sys/pal/unix/os.rs +++ b/library/std/src/sys/pal/unix/os.rs @@ -633,7 +633,10 @@ pub fn temp_dir() -> PathBuf { } pub fn home_dir() -> Option<PathBuf> { - return crate::env::var_os("HOME").or_else(|| unsafe { fallback() }).map(PathBuf::from); + return crate::env::var_os("HOME") + .filter(|s| !s.is_empty()) + .or_else(|| unsafe { fallback() }) + .map(PathBuf::from); #[cfg(any( target_os = "android", |
