非八进制权限 (RUF064)
有时提供修复。
此规则不稳定且处于预览状态。使用需要 --preview
标志。
作用
检查标准库函数中接受数字 mode
参数的情况,并传入了非八进制整数文字量。
为什么这不好?
数字模式由一到四个八进制数字组成。将非八进制整数转换为八进制可能不是作者想要的模式。
示例
建议改为
修复安全性
修复分为两类,第一类是看起来作者想要使用八进制文字量,但缺少 0o
前缀。
此类修复会更改运行时行为。在第一种情况下,400
对应于 0o620
(u=rw,g=w,o=
)。由于这种模式不太可能,因此它被更改为 0o400
(u=r,go=
)。同样,644
对应于 0o1204
(u=ws,g=,o=r
),并被更改为 0o644
(u=rw,go=r
)。
第二类是十进制文字量,它们被认为是可能有效的,但采用十进制形式。
256
对应于 0o400
(u=r,go=
),493
对应于 0o755
(u=rwx,go=rx
)。这两个修复程序都保持运行时行为不变。如果原始代码实际上打算使用 0o256
(u=w,g=rx,o=rw
) 而不是 256
,则不应接受此修复。
修复可用性
仅当整数文字量匹配一组常见模式时,修复才可用。