From 3458b99d6e46ac9010170a874de036ae659ffe47 Mon Sep 17 00:00:00 2001 From: Xu Cheng Date: Fri, 28 Aug 2015 15:59:53 +0800 Subject: [PATCH] update: secure formula loading in rename For update, all formula loading need to be secured by `rescue`. Otherwise it's easy to crash `brew update` for vasty reasons, e.g. new Formula DSL. Closes Homebrew/homebrew#43353. Signed-off-by: Xu Cheng --- Library/Homebrew/cmd/update.rb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/cmd/update.rb b/Library/Homebrew/cmd/update.rb index 83350988b5..c6247765f0 100644 --- a/Library/Homebrew/cmd/update.rb +++ b/Library/Homebrew/cmd/update.rb @@ -78,7 +78,14 @@ module Homebrew next unless (dir = HOMEBREW_CELLAR/oldname).directory? && !dir.subdirs.empty? begin - migrator = Migrator.new(Formulary.factory("#{user}/#{repo}/#{newname}")) + f = Formulary.factory("#{user}/#{repo}/#{newname}") + rescue FormulaUnavailableError, *FormulaVersions::IGNORED_EXCEPTIONS + end + + next unless f + + begin + migrator = Migrator.new(f) migrator.migrate rescue Migrator::MigratorDifferentTapsError end