From 3c6292e9b4c91219d3d722c0278d23a08830fb9c Mon Sep 17 00:00:00 2001 From: ethicalhack3r Date: Sun, 24 Feb 2013 15:44:24 +0100 Subject: [PATCH] Added symlink check to load_config. --- lib/common/browser.rb | 6 +++++- spec/lib/common/browser_spec.rb | 9 ++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/common/browser.rb b/lib/common/browser.rb index d4d9d17d..0730e3d7 100644 --- a/lib/common/browser.rb +++ b/lib/common/browser.rb @@ -137,7 +137,11 @@ class Browser def load_config(config_file = nil) @config_file = config_file || @config_file - data = JSON.parse(File.read(@config_file)) + if File.symlink?(@config_file) + raise "[ERROR] #{config_file} is a symlink." + else + data = JSON.parse(File.read(@config_file)) + end ACCESSOR_OPTIONS.each do |option| option_name = option.to_s diff --git a/spec/lib/common/browser_spec.rb b/spec/lib/common/browser_spec.rb index d7c8b18b..2237a255 100644 --- a/spec/lib/common/browser_spec.rb +++ b/spec/lib/common/browser_spec.rb @@ -200,7 +200,14 @@ describe Browser do # TODO describe '#load_config' do - + it 'should raise an error if file is a symlink' do + symlink = './rspec_symlink' + browser = Browser.instance + + File.symlink('./testfile', symlink) + expect { browser.load_config(symlink) }.to raise_error + File.unlink(symlink) + end end describe '#merge_request_params without proxy' do