diff options
author | Jeff McCune <jeff@puppetlabs.com> | 2012-02-05 21:22:27 -0800 |
---|---|---|
committer | Ken Barber <ken@bob.sh> | 2012-02-06 17:54:41 +0000 |
commit | 24f7095e282fc364b9d12ff26c268b4fd919f09c (patch) | |
tree | 047de98a042a38e6dfe6d3915246a5e0634f33cc /lib/facter | |
parent | 4c2bba86f81695023cec68bfe112591cfeec7c80 (diff) |
(#12377) Avoid infinite loop when retrying require json
Without this patch an infinite loop will be entered if the json and
rubygems libraries are not available.
This patch fixes the problem by retrying the `require 'json'` only if
rubygems was successfully loaded for the first time. Subsequent
attempts to load rubygems will cause the LoadError exception from a
missing json library to be re-raised.
Thanks to Krzysztof Wilczynski for pointing out this issue.
Diffstat (limited to 'lib/facter')
-rw-r--r-- | lib/facter/facter_dot_d.rb | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/facter/facter_dot_d.rb b/lib/facter/facter_dot_d.rb index 90586a9..2658dfe 100644 --- a/lib/facter/facter_dot_d.rb +++ b/lib/facter/facter_dot_d.rb @@ -54,8 +54,8 @@ class Facter::Util::DotD begin require 'json' rescue LoadError - require 'rubygems' - retry + retry if require 'rubygems' + raise end JSON.load(File.read(file)).each_pair do |f, v| |