summaryrefslogtreecommitdiff
path: root/base/file.cpp
diff options
context:
space:
mode:
authorMark Salyzyn <salyzyn@google.com>2018-11-13 15:34:38 -0800
committerMark Salyzyn <salyzyn@google.com>2018-11-14 12:52:13 -0800
commit6009a2debca75f5bddb6e3dcba5a96601ba8f82f (patch)
tree4bf935f188eb5d23b01e69f562852d02d2bb4783 /base/file.cpp
parentb9cb14944154f49ca1b4c2bc31e4881d13ee130c (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.cpp9
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
}