From 4ca1377cb453f767a2ab152a301598ec1febcf7b Mon Sep 17 00:00:00 2001 From: Sai Asish Y Date: Sat, 13 Jun 2026 00:31:39 -0700 Subject: [PATCH] Fix crash on command substitution containing a sourced file Signed-off-by: Sai Asish Y --- src/ShellCheck/Analytics.hs | 1 + src/ShellCheck/Checker.hs | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/src/ShellCheck/Analytics.hs b/src/ShellCheck/Analytics.hs index f6208e72b..e9707cf88 100644 --- a/src/ShellCheck/Analytics.hs +++ b/src/ShellCheck/Analytics.hs @@ -5244,6 +5244,7 @@ checkExpansionWithRedirection params t = _ -> return () checkCmd captureId (T_Redirecting _ redirs _) = foldr (walk captureId) (return ()) redirs + checkCmd _ _ = return () walk captureId t acc = case t of diff --git a/src/ShellCheck/Checker.hs b/src/ShellCheck/Checker.hs index 8060d05ee..92b73c266 100644 --- a/src/ShellCheck/Checker.hs +++ b/src/ShellCheck/Checker.hs @@ -352,6 +352,14 @@ prop_sourcedFileUsesOriginalShellExtension = result == [2079] csCheckSourced = True } +prop_sourcedCommandInExpansionDoesntCrash = result == [2034] + where + result = checkWithSpec [("lib.sh", "echo hello")] emptyCheckSpec { + csFilename = "file.bash", + csScript = "x=$(source lib.sh)", + csCheckSourced = True + } + prop_canEnableOptionalsWithSpec = result == [2244] where result = checkWithSpec [] emptyCheckSpec {