doctor: warn about wide terminals

A terminal width of 262 or greater can trigger a buffer overflow in
curl's progress bar code, resulting in a segfault and aborted downloads.
Warn about this.

cf Homebrew/homebrew#8521.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
This commit is contained in:
Jack Nagel 2011-11-10 19:44:57 -06:00
parent e7947f4f92
commit c0eb8a3bc8

View File

@ -797,6 +797,20 @@ def check_git_version
end
end
def check_terminal_width
if `tput cols`.chomp.to_i > 262
puts <<-EOS.undent
Your terminal width is greater than 262 columns.
This can trigger a segfault in some versions of curl, which may cause
downloads to appear to fail.
You may want to adjust your terminal size.
EOS
end
end
module Homebrew extend self
def doctor
old_stdout = $stdout
@ -842,6 +856,7 @@ module Homebrew extend self
check_git_status
check_for_leopard_ssl
check_git_version
check_terminal_width
ensure
$stdout = old_stdout
end