diff --git a/sonar-keyware-plugins-cxx/src/main/java/com/keyware/sonar/cxx/rules/checkers/NumericalCopyChecker.java b/sonar-keyware-plugins-cxx/src/main/java/com/keyware/sonar/cxx/rules/checkers/NumericalCopyChecker.java index daa490b..a28a5e7 100644 --- a/sonar-keyware-plugins-cxx/src/main/java/com/keyware/sonar/cxx/rules/checkers/NumericalCopyChecker.java +++ b/sonar-keyware-plugins-cxx/src/main/java/com/keyware/sonar/cxx/rules/checkers/NumericalCopyChecker.java @@ -42,10 +42,10 @@ public class NumericalCopyChecker extends SquidCheck {//当私有数组 for (AstNode ast : descendan) { List descendants = ast.getDescendants(CxxGrammarImpl.expression); for (AstNode des : descendants) { - if ("return".equals(des.getParent().getTokenValue())){ - if (lists.contains(des.getTokenValue())) { - getContext().createLineViolation(this, "应返回该私有数值的副本", des); - } + if ("return".equals(des.getParent().getTokenValue()) || des.getTokenValue().contains("0")){ + if (lists.contains(des.getTokenValue())) { + getContext().createLineViolation(this, "应返回该私有数值的副本", des); + } } } } diff --git a/sonar-keyware-plugins-cxx/src/test/resources/com/keyware/sonar/cxx/rules/checkers/NumericalCopyChecker.cc b/sonar-keyware-plugins-cxx/src/test/resources/com/keyware/sonar/cxx/rules/checkers/NumericalCopyChecker.cc index 714ebc3..22df436 100644 --- a/sonar-keyware-plugins-cxx/src/test/resources/com/keyware/sonar/cxx/rules/checkers/NumericalCopyChecker.cc +++ b/sonar-keyware-plugins-cxx/src/test/resources/com/keyware/sonar/cxx/rules/checkers/NumericalCopyChecker.cc @@ -15,7 +15,7 @@ public: return privateArray; // error } -// // 返回的是私有数组的指针 + // 返回的是私有数组的指针 int* getPrivateArrayPtr() { return privateArray.data(); // error }