CodeQL 文档

忽略调用的错误状态

ID: java/ignored-error-status-of-call
Kind: problem
Security severity: 
Severity: recommendation
Precision: high
Tags:
   - reliability
   - correctness
   - external/cwe/cwe-391
Query suites:
   - java-security-and-quality.qls

点击查看 CodeQL 存储库中的查询

Java 开发工具包中的许多方法(例如,请参阅以下参考)返回状态值(例如,作为 int)以指示方法执行是否正常完成。如果方法未正常完成,它们可能会返回错误代码。如果未检查方法结果,则异常方法执行可能会导致后续代码失败。

建议

你应该插入附加代码来检查返回值并采取适当的操作。

示例

以下示例使用 java.io.InputStream.read 方法从输入流中读取 16 个字节并将其存储在数组中。但是,read 可能实际上无法读取尽可能多的字节,例如因为流已耗尽。因此,代码不应仅仅依赖于数组 b 从输入流中精确填充 16 个字节。相反,代码应该检查方法的返回值,该返回值指示实际读取的字节数。

java.io.InputStream is = (...);
byte[] b = new byte[16];
is.read(b);

参考

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