diff options
| author | Mark Salyzyn <salyzyn@google.com> | 2018-11-13 15:34:38 -0800 |
|---|---|---|
| committer | Mark Salyzyn <salyzyn@google.com> | 2018-11-14 12:52:13 -0800 |
| commit | 6009a2debca75f5bddb6e3dcba5a96601ba8f82f (patch) | |
| tree | 4bf935f188eb5d23b01e69f562852d02d2bb4783 /base/file.cpp | |
| parent | b9cb14944154f49ca1b4c2bc31e4881d13ee130c (diff) | |
base: Add sensitivity to TMPDIR environment for TemporaryDir and TemporaryFile
Test: compile
Bug: 119313545
Change-Id: I2917847f0e90df94d74f4bfc0b13fbc6a5f243c3
Diffstat (limited to 'base/file.cpp')
| -rw-r--r-- | base/file.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/base/file.cpp b/base/file.cpp index e4407d073e..f362f941c3 100644 --- a/base/file.cpp +++ b/base/file.cpp @@ -72,7 +72,8 @@ namespace { std::string GetSystemTempDir() { #if defined(__ANDROID__) - const char* tmpdir = "/data/local/tmp"; + const auto* tmpdir = getenv("TMPDIR"); + if (tmpdir == nullptr) tmpdir = "/data/local/tmp"; if (access(tmpdir, R_OK | W_OK | X_OK) == 0) { return tmpdir; } @@ -81,7 +82,7 @@ std::string GetSystemTempDir() { return "."; #elif defined(_WIN32) char tmp_dir[MAX_PATH]; - DWORD result = GetTempPathA(sizeof(tmp_dir), tmp_dir); + DWORD result = GetTempPathA(sizeof(tmp_dir), tmp_dir); // checks TMP env CHECK_NE(result, 0ul) << "GetTempPathA failed, error: " << GetLastError(); CHECK_LT(result, sizeof(tmp_dir)) << "path truncated to: " << result; @@ -91,7 +92,9 @@ std::string GetSystemTempDir() { tmp_dir[result - 1] = '\0'; return tmp_dir; #else - return "/tmp"; + const auto* tmpdir = getenv("TMPDIR"); + if (tmpdir == nullptr) tmpdir = "/tmp"; + return tmpdir; #endif } |
