From aaee78b3fd929c5782f120575f2b12a9d01dd37a Mon Sep 17 00:00:00 2001 From: RenFengJiang <1111> Date: Thu, 25 Jan 2024 19:24:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=9A=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=88=A4=E6=96=AD=E4=B8=AD=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sonar/cxx/rules/checkers/CmdDataVerifyChecker.java | 2 ++ .../sonar/cxx/rules/checkers/CmdDataVerifyChecker.cc | 9 +++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/sonar-keyware-plugins-cxx/src/main/java/com/keyware/sonar/cxx/rules/checkers/CmdDataVerifyChecker.java b/sonar-keyware-plugins-cxx/src/main/java/com/keyware/sonar/cxx/rules/checkers/CmdDataVerifyChecker.java index 3ae7dc8..af8ccb4 100644 --- a/sonar-keyware-plugins-cxx/src/main/java/com/keyware/sonar/cxx/rules/checkers/CmdDataVerifyChecker.java +++ b/sonar-keyware-plugins-cxx/src/main/java/com/keyware/sonar/cxx/rules/checkers/CmdDataVerifyChecker.java @@ -10,6 +10,7 @@ import com.keyware.sonar.cxx.SubscriptionAstVisitor; import com.sonar.cxx.sslr.api.AstNode; import com.sonar.cxx.sslr.api.AstNodeType; import com.sonar.cxx.sslr.api.Grammar; +import org.checkerframework.checker.units.qual.C; import org.sonar.check.Priority; import org.sonar.check.Rule; import org.sonar.cxx.parser.CxxGrammarImpl; @@ -73,6 +74,7 @@ public class CmdDataVerifyChecker extends SquidCheck { if("if".equals(astNode.getToken().getValue())){ //获取其中的参数 List astNodeList = astNode.getDescendants(CxxGrammarImpl.expressionList); + astNodeList.addAll(astNode.getDescendants(CxxGrammarImpl.condition)); for (AstNode expr:astNodeList) { lists.add(expr.getToken().getValue()); } diff --git a/sonar-keyware-plugins-cxx/src/test/resources/com/keyware/sonar/cxx/rules/checkers/CmdDataVerifyChecker.cc b/sonar-keyware-plugins-cxx/src/test/resources/com/keyware/sonar/cxx/rules/checkers/CmdDataVerifyChecker.cc index e7fa8f1..8a58f92 100644 --- a/sonar-keyware-plugins-cxx/src/test/resources/com/keyware/sonar/cxx/rules/checkers/CmdDataVerifyChecker.cc +++ b/sonar-keyware-plugins-cxx/src/test/resources/com/keyware/sonar/cxx/rules/checkers/CmdDataVerifyChecker.cc @@ -3,13 +3,14 @@ int main() { std::string command = "echo Hello, World!"; // 要构建的命令 - -// if(a(command)){ -// } // if(command.contains("/") ){ // } +// if(command == ""){ +// } + // 使用system函数执行命令 - int result = system(command); + int result = system(command.c_str()); // error + if (result == 0) { std::cout << "命令执行成功。" << std::endl;