From cb4a0c0250b9a52d7f8bfee7c061011b837101e2 Mon Sep 17 00:00:00 2001 From: Ng Zhi An Date: Sun, 27 May 2018 11:02:08 -0700 Subject: [PATCH] Check if builtin cd is called Fixes #1234 --- src/ShellCheck/ASTLib.hs | 2 +- src/ShellCheck/Analytics.hs | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ShellCheck/ASTLib.hs b/src/ShellCheck/ASTLib.hs index 7bb356d..9ffd7a3 100644 --- a/src/ShellCheck/ASTLib.hs +++ b/src/ShellCheck/ASTLib.hs @@ -261,7 +261,7 @@ getCommand t = getCommandName t = do (T_SimpleCommand _ _ (w:rest)) <- getCommand t s <- getLiteralString w - if "busybox" `isSuffixOf` s + if "busybox" `isSuffixOf` s || "builtin" == s then case rest of (applet:_) -> getLiteralString applet diff --git a/src/ShellCheck/Analytics.hs b/src/ShellCheck/Analytics.hs index 51f6326..1f18e08 100644 --- a/src/ShellCheck/Analytics.hs +++ b/src/ShellCheck/Analytics.hs @@ -2483,6 +2483,7 @@ prop_checkUncheckedCd5 = verifyTree checkUncheckedCdPushdPopd "if true; then cd prop_checkUncheckedCd6 = verifyNotTree checkUncheckedCdPushdPopd "cd .." prop_checkUncheckedCd7 = verifyNotTree checkUncheckedCdPushdPopd "#!/bin/bash -e\ncd foo\nrm bar" prop_checkUncheckedCd8 = verifyNotTree checkUncheckedCdPushdPopd "set -o errexit; cd foo; rm bar" +prop_checkUncheckedCd9 = verifyTree checkUncheckedCdPushdPopd "builtin cd ~/src; rm -r foo" prop_checkUncheckedPushd1 = verifyTree checkUncheckedCdPushdPopd "pushd ~/src; rm -r foo" prop_checkUncheckedPushd2 = verifyNotTree checkUncheckedCdPushdPopd "pushd ~/src || exit; rm -r foo" prop_checkUncheckedPushd3 = verifyNotTree checkUncheckedCdPushdPopd "set -e; pushd ~/src; rm -r foo"