Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Annlix
ShellCheck
提交
65ab8c8e
S
ShellCheck
项目概览
Annlix
/
ShellCheck
与 Fork 源项目一致
Fork自
镜像 / koalaman / ShellCheck
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
ShellCheck
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
65ab8c8e
编写于
6月 07, 2015
作者:
V
Vidar Holen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Account for brace expansion in SC2115 (catastrophic rm).
上级
3a041954
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
15 addition
and
1 deletion
+15
-1
ShellCheck/Analytics.hs
ShellCheck/Analytics.hs
+15
-1
未找到文件。
ShellCheck/Analytics.hs
浏览文件 @
65ab8c8e
...
...
@@ -1556,6 +1556,16 @@ getUnquotedLiteral (T_NormalWord _ list) =
str
_
=
Nothing
getUnquotedLiteral
_
=
Nothing
-- Return a list of NormalWords resulting from brace expansion
braceExpand
(
T_NormalWord
id
list
)
=
take
1000
$
do
items
<-
mapM
part
list
return
$
T_NormalWord
id
items
where
part
(
T_BraceExpansion
id
items
)
=
do
item
<-
items
braceExpand
item
part
x
=
return
x
isCommand
token
str
=
isCommandMatch
token
(
\
cmd
->
cmd
==
str
||
(
'/'
:
str
)
`
isSuffixOf
`
cmd
)
isUnqualifiedCommand
token
str
=
isCommandMatch
token
(
==
str
)
...
...
@@ -2939,11 +2949,15 @@ prop_checkCatastrophicRm5 = verifyNot checkCatastrophicRm "rm -r /home/${USER:-t
prop_checkCatastrophicRm6
=
verify
checkCatastrophicRm
"rm --recursive /etc/*$config*"
prop_checkCatastrophicRm8
=
verify
checkCatastrophicRm
"rm -rf /home"
prop_checkCatastrophicRm9
=
verifyNot
checkCatastrophicRm
"rm -rf -- /home"
prop_checkCatastrophicRm10
=
verifyNot
checkCatastrophicRm
"rm -r
\"
${DIR}
\"
/{.gitignore,.gitattributes,ci}"
prop_checkCatastrophicRm11
=
verify
checkCatastrophicRm
"rm -r /{bin,sbin}/$exec"
prop_checkCatastrophicRm12
=
verify
checkCatastrophicRm
"rm -r /{{usr,},{bin,sbin}}/$exec"
prop_checkCatastrophicRm13
=
verifyNot
checkCatastrophicRm
"rm -r /{{a,b},{c,d}}/$exec"
prop_checkCatastrophicRmA
=
verify
checkCatastrophicRm
"rm -rf /usr /lib/nvidia-current/xorg/xorg"
prop_checkCatastrophicRmB
=
verify
checkCatastrophicRm
"rm -rf
\"
$STEAMROOT/
\"
*"
checkCatastrophicRm
params
t
@
(
T_SimpleCommand
id
_
tokens
)
|
t
`
isCommand
`
"rm"
=
when
(
any
isRecursiveFlag
simpleArgs
)
$
mapM_
checkWord
tokens
mapM_
(
mapM_
checkWord
.
braceExpand
)
tokens
where
simpleArgs
=
deadSimple
t
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录