From 2d89fc350f1aa5f254461bcb6dbbe050f548f97f Mon Sep 17 00:00:00 2001 From: Justin Collins Date: Tue, 17 Jul 2012 13:04:43 -0700 Subject: [PATCH] Report warnings raised while running checks --- lib/brakeman/checks.rb | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/lib/brakeman/checks.rb b/lib/brakeman/checks.rb index 9da31a6c..3d30b80c 100644 --- a/lib/brakeman/checks.rb +++ b/lib/brakeman/checks.rb @@ -97,7 +97,12 @@ class Brakeman::Checks Brakeman.notify " - #{check_name}" check = c.new(tracker) - check.run_check + + begin + check.run_check + rescue Exception => e + tracker.error e + end check.warnings.each do |w| check_runner.add_warning w @@ -115,6 +120,7 @@ class Brakeman::Checks #Run checks in parallel threads def self.run_checks_parallel tracker threads = [] + error_mutex = Mutex.new check_runner = self.new :min_confidence => tracker.options[:min_confidence] @@ -128,14 +134,17 @@ class Brakeman::Checks Brakeman.notify " - #{check_name}" threads << Thread.new do + check = c.new(tracker) + begin - check = c.new(tracker) check.run_check - check.warnings rescue Exception => e - Brakeman.notify "[#{check_name}] #{e}" - [] + error_mutex.synchronize do + tracker.error e + end end + + check.warnings end #Maintain list of which checks were run -- GitLab