Make SC2174 only trigger for nested directories.
This commit is contained in:
parent
fa4cefda9d
commit
f9909504dd
|
@ -3676,28 +3676,33 @@ checkNonportableSignals _ = checkUnqualifiedCommand "trap" (const f)
|
||||||
return $ err id 2173
|
return $ err id 2173
|
||||||
"SIGKILL/SIGSTOP can not be trapped."
|
"SIGKILL/SIGSTOP can not be trapped."
|
||||||
|
|
||||||
prop_checkMkdirDashPM0 = verify checkMkdirDashPM "mkdir -p -m 0755 dir"
|
prop_checkMkdirDashPM0 = verify checkMkdirDashPM "mkdir -p -m 0755 a/b"
|
||||||
prop_checkMkdirDashPM1 = verify checkMkdirDashPM "mkdir -pm 0755 dir"
|
prop_checkMkdirDashPM1 = verify checkMkdirDashPM "mkdir -pm 0755 $dir"
|
||||||
prop_checkMkdirDashPM2 = verify checkMkdirDashPM "mkdir -vpm 0755 dir"
|
prop_checkMkdirDashPM2 = verify checkMkdirDashPM "mkdir -vpm 0755 a/b"
|
||||||
prop_checkMkdirDashPM3 = verify checkMkdirDashPM "mkdir -pm 0755 -v dir"
|
prop_checkMkdirDashPM3 = verify checkMkdirDashPM "mkdir -pm 0755 -v a/b"
|
||||||
prop_checkMkdirDashPM4 = verify checkMkdirDashPM "mkdir --parents --mode=0755 dir"
|
prop_checkMkdirDashPM4 = verify checkMkdirDashPM "mkdir --parents --mode=0755 a/b"
|
||||||
prop_checkMkdirDashPM5 = verify checkMkdirDashPM "mkdir --parents --mode 0755 dir"
|
prop_checkMkdirDashPM5 = verify checkMkdirDashPM "mkdir --parents --mode 0755 a/b"
|
||||||
prop_checkMkdirDashPM6 = verify checkMkdirDashPM "mkdir -p --mode=0755 dir"
|
prop_checkMkdirDashPM6 = verify checkMkdirDashPM "mkdir -p --mode=0755 a/b"
|
||||||
prop_checkMkdirDashPM7 = verify checkMkdirDashPM "mkdir --parents -m 0755 dir"
|
prop_checkMkdirDashPM7 = verify checkMkdirDashPM "mkdir --parents -m 0755 a/b"
|
||||||
prop_checkMkdirDashPM8 = verifyNot checkMkdirDashPM "mkdir -p dir"
|
prop_checkMkdirDashPM8 = verifyNot checkMkdirDashPM "mkdir -p a/b"
|
||||||
prop_checkMkdirDashPM9 = verifyNot checkMkdirDashPM "mkdir -m 0755 dir"
|
prop_checkMkdirDashPM9 = verifyNot checkMkdirDashPM "mkdir -m 0755 a/b"
|
||||||
prop_checkMkdirDashPM10 = verifyNot checkMkdirDashPM "mkdir dir"
|
prop_checkMkdirDashPM10 = verifyNot checkMkdirDashPM "mkdir a/b"
|
||||||
prop_checkMkdirDashPM11 = verifyNot checkMkdirDashPM "mkdir --parents dir"
|
prop_checkMkdirDashPM11 = verifyNot checkMkdirDashPM "mkdir --parents a/b"
|
||||||
prop_checkMkdirDashPM12 = verifyNot checkMkdirDashPM "mkdir --mode=0755 dir"
|
prop_checkMkdirDashPM12 = verifyNot checkMkdirDashPM "mkdir --mode=0755 a/b"
|
||||||
prop_checkMkdirDashPM13 = verifyNot checkMkdirDashPM "mkdir_func -pm 0755 dir"
|
prop_checkMkdirDashPM13 = verifyNot checkMkdirDashPM "mkdir_func -pm 0755 a/b"
|
||||||
checkMkdirDashPM _ t@(T_SimpleCommand _ _ _) = potentially $ do
|
prop_checkMkdirDashPM14 = verifyNot checkMkdirDashPM "mkdir -p -m 0755 singlelevel"
|
||||||
|
checkMkdirDashPM _ t@(T_SimpleCommand _ _ args) = potentially $ do
|
||||||
name <- getCommandName t
|
name <- getCommandName t
|
||||||
guard $ name == "mkdir"
|
guard $ name == "mkdir"
|
||||||
dashP <- find ((\f -> f == "p" || f == "parents") . snd) flags
|
dashP <- find ((\f -> f == "p" || f == "parents") . snd) flags
|
||||||
dashM <- find ((\f -> f == "m" || f == "mode") . snd) flags
|
dashM <- find ((\f -> f == "m" || f == "mode") . snd) flags
|
||||||
return $ warn (getId $ fst dashM) 2174 "-m will be ignored"
|
guard $ any couldHaveSubdirs (drop 1 args) -- mkdir -pm 0700 dir is fine, but dir/subdir is not.
|
||||||
|
return $ warn (getId $ fst dashM) 2174 "When used with -p, -m only applies to the deepest directory."
|
||||||
where
|
where
|
||||||
flags = getAllFlags t
|
flags = getAllFlags t
|
||||||
|
couldHaveSubdirs t = fromMaybe True $ do
|
||||||
|
name <- getLiteralString t
|
||||||
|
return $ '/' `elem` name
|
||||||
checkMkdirDashPM _ _ = return ()
|
checkMkdirDashPM _ _ = return ()
|
||||||
|
|
||||||
return []
|
return []
|
||||||
|
|
Loading…
Reference in New Issue