Skip to content

Commit 579c955

Browse files
committed
Java: Adjust some tests.
1 parent 175c712 commit 579c955

File tree

5 files changed

+40
-35
lines changed

5 files changed

+40
-35
lines changed
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
invalidModelRow
22
#select
3-
| C.java:6:16:6:19 | arg1 | C.java:6:5:6:20 | stepArgRes(...) | qltest |
4-
| C.java:10:16:10:21 | argIn1 | C.java:10:24:10:30 | argOut1 [post update] | qltest |
5-
| C.java:13:16:13:21 | argIn2 | C.java:13:24:13:30 | argOut2 [post update] | qltest |
6-
| C.java:16:17:16:20 | arg2 | C.java:16:5:16:21 | this <.method> [post update] | qltest |
7-
| C.java:18:22:18:25 | arg3 | C.java:18:5:18:8 | this [post update] | qltest |
8-
| C.java:20:5:20:8 | this | C.java:20:5:20:22 | stepQualRes(...) | qltest |
9-
| C.java:21:5:21:17 | this <.method> | C.java:21:5:21:17 | stepQualRes(...) | qltest |
10-
| C.java:24:5:24:23 | this <.method> | C.java:24:17:24:22 | argOut [post update] | qltest |
3+
| C.java:6:16:6:19 | arg1 | C.java:6:5:6:20 | stepArgRes(...) |
4+
| C.java:10:16:10:21 | argIn1 | C.java:10:24:10:30 | argOut1 [post update] |
5+
| C.java:13:16:13:21 | argIn2 | C.java:13:24:13:30 | argOut2 [post update] |
6+
| C.java:16:17:16:20 | arg2 | C.java:16:5:16:21 | this <.method> [post update] |
7+
| C.java:18:22:18:25 | arg3 | C.java:18:5:18:8 | this [post update] |
8+
| C.java:20:5:20:8 | this | C.java:20:5:20:22 | stepQualRes(...) |
9+
| C.java:21:5:21:17 | this <.method> | C.java:21:5:21:17 | stepQualRes(...) |
10+
| C.java:24:5:24:23 | this <.method> | C.java:24:17:24:22 | argOut [post update] |
Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
11
import java
22
import semmle.code.java.dataflow.DataFlow
33
import semmle.code.java.dataflow.ExternalFlow
4+
import semmle.code.java.dataflow.internal.FlowSummaryImpl as FlowSummaryImpl
45
import CsvValidation
56

67
class SummaryModelTest extends SummaryModelCsv {
78
override predicate row(string row) {
89
row =
910
[
1011
//"package;type;overrides;name;signature;ext;inputspec;outputspec;kind",
11-
"my.qltest;C;false;stepArgRes;(Object);;Argument[0];ReturnValue;qltest",
12-
"my.qltest;C;false;stepArgArg;(Object,Object);;Argument[0];Argument[1];qltest",
13-
"my.qltest;C;false;stepArgQual;(Object);;Argument[0];Argument[-1];qltest",
14-
"my.qltest;C;false;stepQualRes;();;Argument[-1];ReturnValue;qltest",
15-
"my.qltest;C;false;stepQualArg;(Object);;Argument[-1];Argument[0];qltest"
12+
"my.qltest;C;false;stepArgRes;(Object);;Argument[0];ReturnValue;taint",
13+
"my.qltest;C;false;stepArgArg;(Object,Object);;Argument[0];Argument[1];taint",
14+
"my.qltest;C;false;stepArgQual;(Object);;Argument[0];Argument[-1];taint",
15+
"my.qltest;C;false;stepQualRes;();;Argument[-1];ReturnValue;taint",
16+
"my.qltest;C;false;stepQualArg;(Object);;Argument[-1];Argument[0];taint"
1617
]
1718
}
1819
}
1920

20-
from DataFlow::Node node1, DataFlow::Node node2, string kind
21-
where summaryStep(node1, node2, kind)
22-
select node1, node2, kind
21+
from DataFlow::Node node1, DataFlow::Node node2
22+
where FlowSummaryImpl::Private::Steps::summaryThroughStep(node1, node2, false)
23+
select node1, node2
Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
import semmle.code.java.dataflow.DataFlow
22
import semmle.code.java.dataflow.internal.TaintTrackingUtil
3+
import semmle.code.java.dataflow.internal.FlowSummaryImpl as FlowSummaryImpl
34

45
from DataFlow::Node src, DataFlow::Node sink
56
where
6-
localAdditionalTaintStep(src, sink) and
7-
src.getLocation().getFile().getExtension() = "java"
7+
(
8+
localAdditionalTaintStep(src, sink) or
9+
FlowSummaryImpl::Private::Steps::summaryThroughStep(src, sink, false)
10+
) and
11+
not FlowSummaryImpl::Private::Steps::summaryLocalStep(src, sink, false)
812
select src, sink

java/ql/test/library-tests/frameworks/apache-commons-lang3/ObjectUtilsTest.java

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,22 @@ void test() throws Exception {
1717
sink(ObjectUtils.CONST_BYTE(IntSource.taint())); // $hasValueFlow
1818
sink(ObjectUtils.defaultIfNull(taint(), null)); // $hasValueFlow
1919
sink(ObjectUtils.defaultIfNull(null, taint())); // $hasValueFlow
20-
sink(ObjectUtils.firstNonNull(taint(), null, null)); // $hasTaintFlow $MISSING:hasValueFlow
21-
sink(ObjectUtils.firstNonNull(null, taint(), null)); // $hasTaintFlow $MISSING:hasValueFlow
22-
sink(ObjectUtils.firstNonNull(null, null, taint())); // $hasTaintFlow $MISSING:hasValueFlow
20+
sink(ObjectUtils.firstNonNull(taint(), null, null)); // $ MISSING:hasValueFlow
21+
sink(ObjectUtils.firstNonNull(null, taint(), null)); // $ MISSING:hasValueFlow
22+
sink(ObjectUtils.firstNonNull(null, null, taint())); // $ MISSING:hasValueFlow
2323
sink(ObjectUtils.getIfNull(taint(), null)); // $hasValueFlow
24-
sink(ObjectUtils.max(taint(), null, null)); // $hasTaintFlow $MISSING:hasValueFlow
25-
sink(ObjectUtils.max(null, taint(), null)); // $hasTaintFlow $MISSING:hasValueFlow
26-
sink(ObjectUtils.max(null, null, taint())); // $hasTaintFlow $MISSING:hasValueFlow
27-
sink(ObjectUtils.median(taint(), null, null)); // $hasTaintFlow $MISSING:hasValueFlow
28-
sink(ObjectUtils.median((String)null, taint(), null)); // $hasTaintFlow $MISSING:hasValueFlow
29-
sink(ObjectUtils.median((String)null, null, taint())); // $hasTaintFlow $MISSING:hasValueFlow
30-
sink(ObjectUtils.min(taint(), null, null)); // $hasTaintFlow $MISSING:hasValueFlow
31-
sink(ObjectUtils.min(null, taint(), null)); // $hasTaintFlow $MISSING:hasValueFlow
32-
sink(ObjectUtils.min(null, null, taint())); // $hasTaintFlow $MISSING:hasValueFlow
33-
sink(ObjectUtils.mode(taint(), null, null)); // $hasTaintFlow $MISSING:hasValueFlow
34-
sink(ObjectUtils.mode(null, taint(), null)); // $hasTaintFlow $MISSING:hasValueFlow
35-
sink(ObjectUtils.mode(null, null, taint())); // $hasTaintFlow $MISSING:hasValueFlow
24+
sink(ObjectUtils.max(taint(), null, null)); // $ MISSING:hasValueFlow
25+
sink(ObjectUtils.max(null, taint(), null)); // $ MISSING:hasValueFlow
26+
sink(ObjectUtils.max(null, null, taint())); // $ MISSING:hasValueFlow
27+
sink(ObjectUtils.median(taint(), null, null)); // $ MISSING:hasValueFlow
28+
sink(ObjectUtils.median((String)null, taint(), null)); // $ MISSING:hasValueFlow
29+
sink(ObjectUtils.median((String)null, null, taint())); // $ MISSING:hasValueFlow
30+
sink(ObjectUtils.min(taint(), null, null)); // $ MISSING:hasValueFlow
31+
sink(ObjectUtils.min(null, taint(), null)); // $ MISSING:hasValueFlow
32+
sink(ObjectUtils.min(null, null, taint())); // $ MISSING:hasValueFlow
33+
sink(ObjectUtils.mode(taint(), null, null)); // $ MISSING:hasValueFlow
34+
sink(ObjectUtils.mode(null, taint(), null)); // $ MISSING:hasValueFlow
35+
sink(ObjectUtils.mode(null, null, taint())); // $ MISSING:hasValueFlow
3636
sink(ObjectUtils.requireNonEmpty(taint(), "message")); // $hasValueFlow
3737
sink(ObjectUtils.requireNonEmpty("not null", taint())); // GOOD (message doesn't propagate to the return)
3838
sink(ObjectUtils.toString(taint(), "default string")); // GOOD (first argument is stringified)

java/ql/test/library-tests/frameworks/guava/TestBase.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ void test1() {
1818
sink(Strings.lenientFormat(x, 3)); // $numTaintFlow=1
1919
sink(Strings.commonPrefix(x, "abc"));
2020
sink(Strings.commonSuffix(x, "cde"));
21-
sink(Strings.lenientFormat("%s = %s", x, 3)); // $numTaintFlow=1
21+
sink(Strings.lenientFormat("%s = %s", x, 3)); // $ MISSING:numTaintFlow=1
2222
}
2323

2424
void test2() {
@@ -60,4 +60,4 @@ void test3() {
6060
void test4() {
6161
sink(Preconditions.checkNotNull(taint())); // $numTaintFlow=1
6262
}
63-
}
63+
}

0 commit comments

Comments
 (0)