Merge pull request #2588 from DoxasticFox/issue-2563

Add `mapfile` to harmless commands for SC2094
This commit is contained in:
Vidar Holen 2022-09-25 11:03:45 -07:00 committed by GitHub
commit 149b4dbd6f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 2 additions and 1 deletions

View File

@ -807,6 +807,7 @@ prop_checkRedirectToSame6 = verifyNot checkRedirectToSame "echo foo > foo"
prop_checkRedirectToSame7 = verifyNot checkRedirectToSame "sed 's/foo/bar/g' file | sponge file" prop_checkRedirectToSame7 = verifyNot checkRedirectToSame "sed 's/foo/bar/g' file | sponge file"
prop_checkRedirectToSame8 = verifyNot checkRedirectToSame "while read -r line; do _=\"$fname\"; done <\"$fname\"" prop_checkRedirectToSame8 = verifyNot checkRedirectToSame "while read -r line; do _=\"$fname\"; done <\"$fname\""
prop_checkRedirectToSame9 = verifyNot checkRedirectToSame "while read -r line; do cat < \"$fname\"; done <\"$fname\"" prop_checkRedirectToSame9 = verifyNot checkRedirectToSame "while read -r line; do cat < \"$fname\"; done <\"$fname\""
prop_checkRedirectToSame10 = verifyNot checkRedirectToSame "mapfile -t foo <foo"
checkRedirectToSame params s@(T_Pipeline _ _ list) = checkRedirectToSame params s@(T_Pipeline _ _ list) =
mapM_ (\l -> (mapM_ (\x -> doAnalysis (checkOccurrences x) l) (getAllRedirs list))) list mapM_ (\l -> (mapM_ (\x -> doAnalysis (checkOccurrences x) l) (getAllRedirs list))) list
where where
@ -852,7 +853,7 @@ checkRedirectToSame params s@(T_Pipeline _ _ list) =
isHarmlessCommand arg = fromMaybe False $ do isHarmlessCommand arg = fromMaybe False $ do
cmd <- getClosestCommand (parentMap params) arg cmd <- getClosestCommand (parentMap params) arg
name <- getCommandBasename cmd name <- getCommandBasename cmd
return $ name `elem` ["echo", "printf", "sponge"] return $ name `elem` ["echo", "mapfile", "printf", "sponge"]
containsAssignment arg = fromMaybe False $ do containsAssignment arg = fromMaybe False $ do
cmd <- getClosestCommand (parentMap params) arg cmd <- getClosestCommand (parentMap params) arg
return $ isAssignment cmd return $ isAssignment cmd