From 5acb592779c17b0aabc7a966ef63ee61d46d7c13 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Fri, 12 Jun 2020 09:04:37 +0100 Subject: [PATCH] tap: check for invalid fetched tap name. Fixes #7732. --- Library/Homebrew/tap.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/tap.rb b/Library/Homebrew/tap.rb index 9894b4b47b..cf2f2851a5 100644 --- a/Library/Homebrew/tap.rb +++ b/Library/Homebrew/tap.rb @@ -34,7 +34,10 @@ class Tap return CoreTap.instance if ["Homebrew", "Linuxbrew"].include?(user) && ["core", "homebrew"].include?(repo) cache_key = "#{user}/#{repo}".downcase - cache.fetch(cache_key) { |key| cache[key] = Tap.new(user, repo) } + tap = cache.fetch(cache_key) { |key| cache[key] = Tap.new(user, repo) } + raise "Invalid tap name '#{args.join("/")}'" unless tap.path.to_s.match?(HOMEBREW_TAP_PATH_REGEX) + + tap end def self.from_path(path)