【问题标题】:Null Dereference Fortify Issue空解引用强化问题
【发布时间】:2022-03-19 02:12:59
【问题描述】:

我正在努力修复代码库中的强化发现,扫描返回一个空的取消引用发现。建议我向 csvWriter 添加一个空检查,但老实说,我并不完全知道这意味着什么。有人能指出我正确的方向吗?谢谢。

    private void writeBadRecordFile() {

        CsvWriter csvWriter = null;

        try {
            badRecordFile = File.createTempFile(\"BadRecords\", \".csv\");
            badRecordFile.deleteOnExit();

                FileWriter writer = new FileWriter(badRecordFile);

                csvWriter = new CsvWriter(writer, \',\');
                String[] header = {\"BIC\"};

                csvWriter.writeRecord(header);

                for (String badRecord : badRecords) {

                    csvWriter.write(badRecord);
                    csvWriter.endRecord();
                }

                csvWriter.flush();

            } catch (IOException e) {
                errorMessage = \"Bad records were detected in the uploaded file, but the bad record file was not able to be created.\";
                e.printStackTrace();

            } finally {

                csvWriter.close();
            }
        }
  • 哎呀。谢谢你的收获。
  • 您应该发布完整的错误消息,堆栈跟踪。

标签: java fortify


【解决方案1】:

如果try 块的前三行失败,那么csvWriter 仍然是null,并且运行csvWriter.closefinally 块将抛出NullPointerException。 linter 建议您这样做

if (csvWriter != null) {
  csvWriter.close();
}

在您的 finally 块中。或者,更好的是,使用 Java 的 try-with-resources 语句完全放弃该问题。

【讨论】:

    猜你喜欢
    • 2017-11-19
    • 2023-01-31
    • 1970-01-01
    • 2017-03-10
    • 1970-01-01
    • 1970-01-01
    • 2018-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多