Skip to content

Remark TMP, TEMP and USERPROFILE env vars can influence env::temp_dir on Windows #125439

Open
@jieyouxu

Description

@jieyouxu

Location

Summary

Encountered in #122580 (comment).

In codegen we (transitively) use env::temp_dir() for some temporary files. If you unset (or provide a value that is not a writable directory) all three TMP, TEMP, USERPROFILE env vars (such as by calling Command::env_clear on some cargo invocation) on Windows, then env::temp_dir() can return the Windows directory which is often not writable.

This is documented in GetTempPath2W, but it might be worth a remark on the docs for env::temp_dir and Command::env_clear that modifying or unsetting TMP, TEMP and USERPROFILE can influence the result of env::temp_dir on Windows.

It is already pointed out that env::temp_dir returns value of TMPDIR on Linux.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-docsArea: Documentation for any part of the project, including the compiler, standard library, and toolsC-enhancementCategory: An issue proposing an enhancement or a PR with one.O-windowsOperating system: WindowsT-libs-apiRelevant to the library API team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions