aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorMax Howell2010-01-13 05:37:58 +0000
committerMax Howell2010-01-13 11:23:15 +0000
commit158598f04929e5ad423df7489ea1246c8b642311 (patch)
treef1d39127c2626f7e2abc0244fb7652a198f965d2 /Library
parent9f1fdecae7023977d86717c49458630ba8993b1b (diff)
downloadhomebrew-158598f04929e5ad423df7489ea1246c8b642311.tar.bz2
Escape any spaces in path during strip step
Not using path.basename for mktemp due to risk of bugs due to incorrect escaping. But mainly, mktemp gives a unique name and this operation is procedural.
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/brew.h.rb6
1 files changed, 4 insertions, 2 deletions
diff --git a/Library/Homebrew/brew.h.rb b/Library/Homebrew/brew.h.rb
index 32688d64c..f11448d21 100644
--- a/Library/Homebrew/brew.h.rb
+++ b/Library/Homebrew/brew.h.rb
@@ -442,11 +442,13 @@ private
puts "strip #{path}" if ARGV.verbose?
path.chmod 0644 # so we can strip
unless path.stat.nlink > 1
- `strip #{args} #{path}`
+ system "strip", *(args+path)
else
+ path = path.to_s.gsub ' ', '\\ '
+
# strip unlinks the file and recreates it, thus breaking hard links!
# is this expected behaviour? patch does it too… still, this fixes it
- tmp = `/usr/bin/mktemp -t #{path.basename}`.chomp
+ tmp = `/usr/bin/mktemp -t homebrew_strip`.chomp
`/usr/bin/strip #{args} -o #{tmp} #{path}`
`/bin/cat #{tmp} > #{path}`
File.unlink tmp