From 84a110744aeda5b3c269a70fde534ed7718e2c44 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Tue, 12 May 2020 10:26:09 +0100 Subject: [PATCH] utils/fork: check for inner exception command. If it's not present then `ErrorDuringExecution` and `BuildError` don't work correctly so better to fall back to a default `RuntimeError`. --- Library/Homebrew/utils/fork.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/utils/fork.rb b/Library/Homebrew/utils/fork.rb index bd8066b3fc..6427193ce8 100644 --- a/Library/Homebrew/utils/fork.rb +++ b/Library/Homebrew/utils/fork.rb @@ -5,11 +5,13 @@ require "socket" module Utils def self.rewrite_child_error(child_error) - error = if child_error.inner_class == ErrorDuringExecution + error = if child_error.inner["cmd"] && + child_error.inner_class == ErrorDuringExecution ErrorDuringExecution.new(child_error.inner["cmd"], status: child_error.inner["status"], output: child_error.inner["output"]) - elsif child_error.inner_class == BuildError + elsif child_error.inner["cmd"] && + child_error.inner_class == BuildError # We fill `BuildError#formula` and `BuildError#options` in later, # when we rescue this in `FormulaInstaller#build`. BuildError.new(nil, child_error.inner["cmd"],