From b51283424321cb996d0a587e9a62a070d21f3342 Mon Sep 17 00:00:00 2001
From: Margaret Lewicka <margaret@meaningless.name>
Date: Sat, 16 Jul 2016 21:58:47 +0100
Subject: [PATCH] audit: prevent crash from nil exitstatus (#532)

If rubocop invocation from brew audit exits with nil exitstatus,
brew audit fails with 'undefined method `>' for nil:NilClass'.
---
 Library/Homebrew/cmd/style.rb | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/Library/Homebrew/cmd/style.rb b/Library/Homebrew/cmd/style.rb
index ca28ca7128..61e2b79085 100644
--- a/Library/Homebrew/cmd/style.rb
+++ b/Library/Homebrew/cmd/style.rb
@@ -63,8 +63,10 @@ module Homebrew
       !$?.success?
     when :json
       json = Utils.popen_read_text("rubocop", "--format", "json", *args)
-      # exit status of 1 just means violations were found; others are errors
-      raise "Error while running rubocop" if $?.exitstatus > 1
+      # exit status of 1 just means violations were found; other numbers mean execution errors
+      # exitstatus can also be nil if RuboCop process crashes, e.g. due to
+      # native extension problems
+      raise "Error while running RuboCop" if $?.exitstatus.nil? || $?.exitstatus > 1
       RubocopResults.new(Utils::JSON.load(json))
     else
       raise "Invalid output_type for check_style_impl: #{output_type}"
-- 
GitLab