config: set TMPDIR, TEMP and TMP to HOMEBREW_TEMP
TMPDIR, TEMP and TMP (when set) are not whitelisted for writing in sandbox.rb, which could result in sandbox violations when programs attempt to write to these locations. Setting TMPDIR, TEMP and TMP to HOMEBREW_TEMP (which defaults to /tmp when not set) works around the aforementioned problem and also improves uniformity in the locations of tempfiles created during Homebrew operations. Caveat: Non-matching HOMEBREW_TEMP and TMPDIR could lead to undesirable side effects in certain cases, e.g., emacsclient not being able to find an existing server (whose socket lives in $TMPDIR/emacs$UID/) when launched through brew edit.
This commit is contained in:
parent
31052a924f
commit
9f072a92d5
@ -35,6 +35,11 @@ HOMEBREW_LOGS = Pathname.new(ENV["HOMEBREW_LOGS"] || "~/Library/Logs/Homebrew/")
|
||||
# Must use /tmp instead of $TMPDIR because long paths break Unix domain sockets
|
||||
HOMEBREW_TEMP = Pathname.new(ENV.fetch("HOMEBREW_TEMP", "/tmp"))
|
||||
|
||||
# Set common tmpdir environment variables to HOMEBREW_TEMP
|
||||
ENV["TMPDIR"] = HOMEBREW_TEMP
|
||||
ENV["TEMP"] = HOMEBREW_TEMP
|
||||
ENV["TMP"] = HOMEBREW_TEMP
|
||||
|
||||
unless defined? HOMEBREW_LIBRARY_PATH
|
||||
# Root of the Homebrew code base
|
||||
HOMEBREW_LIBRARY_PATH = Pathname.new(__FILE__).realpath.parent
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user