CodeQL 文档

格式化参数数量错误

ID: py/percent-format/wrong-arguments
Kind: problem
Security severity: 
Severity: error
Precision: very-high
Tags:
   - reliability
   - correctness
   - external/cwe/cwe-685
Query suites:
   - python-security-and-quality.qls

点击查看 CodeQL 代码库中的查询

格式化表达式,即格式为 fmt % arguments 的表达式,必须在表达式的右侧具有正确数量的参数。否则,将引发 TypeError

建议

更改格式以匹配参数,并确保右侧参数始终具有正确数量的元素。

示例

在以下示例中,格式化操作的右侧可以是长度为 2 的列表,这与格式字符串不匹配。

def unsafe_format():
    if unlikely_condition():
        args = (1,2)
    else:
        args = (1, 2, 3)
    return "%s %s %s" % args

参考

  • ©GitHub, Inc.
  • 条款
  • 隐私