return_value_passing_001_T/F case问题
您好,为什么return_value_passing的T/F与实际是相反的,我看注释里有标识为负样本,是因为__taint_sink不被视为sink么?
噢噢,刚看到了是static,这个是否可以在注释中特别标注一下呢?毕竟这种case在实际代码中很少遇到,而且从注释来看,主要的关注点被引导到了return值的传递。
感谢您的提问。这里我们的case写的时候有个小问题, tmp = "_";这一句对污点赋值进行了重新赋值,所以应该不存在污点链路。我们在写的时候把这句加到了T的里面,应该加到F的case里。另外Introduction也写错了,应该为返回值传递相关的介绍,我们进行一下修改。
也欢迎给我们提交pr直接进行修改~~
com/sast/astbenchmark/case_language_maturity/accuracy/path_sensitive/loop_stmt/Statement_WhileStatement_003_T.java
com/sast/astbenchmark/case_language_maturity/accuracy/path_sensitive/loop_stmt/Statement_WhileStatement_004_F.java
这两个case也稍微有点问题
两个case的while循环判断条件都对传参type进行比较,只是一个是ls和mkdir,其实结果是一样的,要么进入死循环,要么cmd无法传入Runtime.getRuntime().exec(),我猜T的那个case StringUtils.equals应该使用a,或者在while循环中重新对type赋值
com/sast/astbenchmark/case_language_maturity/completeness/single_app_tracing/control_flow/conditional_stmt/Statement_SwitchStatement_001_T.java com/sast/astbenchmark/case_language_maturity/completeness/single_app_tracing/control_flow/conditional_stmt/Statement_SwitchStatement_002_F.java 这两个也有跟上面的Statement_WhileStatement类似的问题
感谢您的提问,这里是有问题的,我们只关注到了设计ast中的结构,忽略了执行死循环的问题,我们进行一下修改