summaryrefslogtreecommitdiff
path: root/lib/rubygems/config_file.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/config_file.rb')
-rw-r--r--lib/rubygems/config_file.rb8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/rubygems/config_file.rb b/lib/rubygems/config_file.rb
index 42e408f254..1261e1e1a6 100644
--- a/lib/rubygems/config_file.rb
+++ b/lib/rubygems/config_file.rb
@@ -347,7 +347,13 @@ if you believe they were disclosed to a third party.
return {} unless filename && !filename.empty? && File.exist?(filename)
begin
- return self.class.load_with_rubygems_config_hash(File.read(filename))
+ config = self.class.load_with_rubygems_config_hash(File.read(filename))
+ if config.keys.any? { |k| k.include?(":") }
+ warn "Failed to load #{filename} because it doesn't contain valid YAML hash"
+ return {}
+ else
+ return config
+ end
rescue *yaml_errors => e
warn "Failed to load #{filename}, #{e}"
rescue Errno::EACCES