From ccde22b1ab4d899a9ae11d184107a2677040de84 Mon Sep 17 00:00:00 2001 From: Dan Buettner Date: Wed, 23 Feb 2022 15:19:28 -0600 Subject: [PATCH] Patch to avoid issue with nil method call in alias_processor join_item --- lib/brakeman/processors/alias_processor.rb | 2 +- test/tests/alias_processor.rb | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/brakeman/processors/alias_processor.rb b/lib/brakeman/processors/alias_processor.rb index d4017d2c6d..87a7696aad 100644 --- a/lib/brakeman/processors/alias_processor.rb +++ b/lib/brakeman/processors/alias_processor.rb @@ -404,7 +404,7 @@ def process_array_join array, join_str end def join_item item, join_value - if item.is_a? String + if item.nil? || item.is_a?(String) "#{item}#{join_value}" elsif string? item or symbol? item or number? item s(:str, "#{item.value}#{join_value}").line(item.line) diff --git a/test/tests/alias_processor.rb b/test/tests/alias_processor.rb index 3e0dc34b52..e2b885116f 100644 --- a/test/tests/alias_processor.rb +++ b/test/tests/alias_processor.rb @@ -1329,6 +1329,12 @@ def test_bang_bang INPUT end + def test_join_item_works_with_nil_item + assert_nothing_raised do + Brakeman::AliasProcessor.new.join_item(nil, "something") + end + end + def test_alias_processor_failure assert_raises do Brakeman::AliasProcessor.new.process s(:block, s(:attrasgn, s(:call, nil, :x), :"[]!", s(:lit, 1), s(:lit, 2)))