From d9d8121b292c1c87b922d23440cf958c3845542d Mon Sep 17 00:00:00 2001 From: SiyueFeng Date: Sun, 16 Apr 2023 05:01:28 +0000 Subject: [PATCH] =?UTF-8?q?update=20src/main/java/com/huawei/datashow/util?= =?UTF-8?q?/fileUtils/CSVUtil.java.=20=E5=8E=9F=E5=9B=A0=EF=BC=88=E7=9B=AE?= =?UTF-8?q?=E7=9A=84=E3=80=81=E8=A7=A3=E5=86=B3=E7=9A=84=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E7=AD=89=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit "/src/main/java/com/huawei/datashow/util/fileUtils/CSVUtil.java"文件中的算术运算使用了未经验证的用户控制数据,可能会导致溢出。 描述(做了什么,变更了什么) 增加了对limit参数的判断,只有当其大于0时才能顺利执行 Signed-off-by: SiyueFeng --- .../datashow/util/fileUtils/CSVUtil.java | 35 ++++++++++--------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/huawei/datashow/util/fileUtils/CSVUtil.java b/src/main/java/com/huawei/datashow/util/fileUtils/CSVUtil.java index 4c72c6e..fc9d877 100644 --- a/src/main/java/com/huawei/datashow/util/fileUtils/CSVUtil.java +++ b/src/main/java/com/huawei/datashow/util/fileUtils/CSVUtil.java @@ -90,30 +90,33 @@ public class CSVUtil { List csvRecords = parser.getRecords(); List list = new ArrayList<>(); - for (int i = startIndex; i < limit + startIndex; i++) { - if (i == rowCount) { - break; - } - - Map map = JSON.parseObject(csvRecords.get(i).get(0), LinkedHashMap.class); + if (limit > 0) { + for (int i = startIndex; i < limit + startIndex; i++) { + if (i == rowCount) { + break; + } - for (String columnName : deleteColumnName) { - map.remove(columnName); - } + Map map = JSON.parseObject(csvRecords.get(i).get(0), LinkedHashMap.class); - if (mode == 0) { - if (deleteRowIndex.contains(i)) { - map.clear(); + for (String columnName : deleteColumnName) { + map.remove(columnName); } - list.add(map); - } else if (mode == 1) { - if (!deleteRowIndex.contains(i)) { + if (mode == 0) { + if (deleteRowIndex.contains(i)) { + map.clear(); + } list.add(map); + + } else if (mode == 1) { + if (!deleteRowIndex.contains(i)) { + list.add(map); + } } - } + } } + Map result = new LinkedHashMap<>(); result.put("sourceData", list); if (csvRecords.size() > 0) { -- Gitee