From 71a4f2cee17cb03123675d378e990f8fb6693751 Mon Sep 17 00:00:00 2001 From: Justin Collins Date: Mon, 21 Oct 2024 23:50:22 -0600 Subject: [PATCH] Fix recursion in masgn Fixes #1877 --- lib/brakeman/processors/alias_processor.rb | 4 +++- test/apps/rails8/lib/masgn.rb | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 test/apps/rails8/lib/masgn.rb diff --git a/lib/brakeman/processors/alias_processor.rb b/lib/brakeman/processors/alias_processor.rb index cfd1c04e0..ab4177337 100644 --- a/lib/brakeman/processors/alias_processor.rb +++ b/lib/brakeman/processors/alias_processor.rb @@ -666,7 +666,9 @@ def process_masgn exp end unless array? exp[1] and array? exp[2] - return process_default(exp) + # Already processed RHS, don't do it again + # https://github.com/presidentbeef/brakeman/issues/1877 + return exp end vars = exp[1].dup diff --git a/test/apps/rails8/lib/masgn.rb b/test/apps/rails8/lib/masgn.rb new file mode 100644 index 000000000..36dbdfecf --- /dev/null +++ b/test/apps/rails8/lib/masgn.rb @@ -0,0 +1,7 @@ +def test_masgn_recursion + r = lambda { + x, q = r + } + + y, z = r +end