From 6009a2debca75f5bddb6e3dcba5a96601ba8f82f Mon Sep 17 00:00:00 2001 From: Mark Salyzyn Date: Tue, 13 Nov 2018 15:34:38 -0800 Subject: [PATCH] base: Add sensitivity to TMPDIR environment for TemporaryDir and TemporaryFile Test: compile Bug: 119313545 Change-Id: I2917847f0e90df94d74f4bfc0b13fbc6a5f243c3 --- base/file.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/base/file.cpp b/base/file.cpp index e4407d073..f362f941c 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 }