Skip to content

Commit c5eef7b

Browse files
committed
Increase field flow branch limit in Jax-RS tests
This fixes apparently-missing results by allowing the dataflow library to persist even when there are many Map implementations possibly available.
1 parent 9110dfa commit c5eef7b

File tree

3 files changed

+8
-4
lines changed

3 files changed

+8
-4
lines changed

java/ql/test/library-tests/frameworks/JaxWs/JakartaRsFlow.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,12 +160,12 @@ public MyAbstractMultivaluedMapJak(Map<K, List<V>> map) {
160160
void testAbstractMultivaluedMap(Map<String, List<String>> map1, Map<String, List<String>> map2, List<String> list) {
161161
map1.put(taint(), list);
162162
AbstractMultivaluedMap<String, String> amm1 = new MyAbstractMultivaluedMapJak<String, String>(map1);
163-
sink(amm1.keySet().iterator().next()); // $ MISSING: hasValueFlow
163+
sink(amm1.keySet().iterator().next()); // $ hasValueFlow
164164

165165
list.add(taint());
166166
map2.put("key", list);
167167
AbstractMultivaluedMap<String, String> amm2 = new MyAbstractMultivaluedMapJak<String, String>(map2);
168-
sink(amm2.get("key").get(0)); // $ MISSING: hasValueFlow SPURIOUS: hasTaintFlow
168+
sink(amm2.get("key").get(0)); // $ hasValueFlow
169169
}
170170

171171
void testMultivaluedHashMap(Map<String, String> map1, Map<String, String> map2,

java/ql/test/library-tests/frameworks/JaxWs/JaxRsFlow.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,12 +160,12 @@ public MyAbstractMultivaluedMap(Map<K, List<V>> map) {
160160
void testAbstractMultivaluedMap(Map<String, List<String>> map1, Map<String, List<String>> map2, List<String> list) {
161161
map1.put(taint(), list);
162162
AbstractMultivaluedMap<String, String> amm1 = new MyAbstractMultivaluedMap<String, String>(map1);
163-
sink(amm1.keySet().iterator().next()); // $ MISSING: hasValueFlow
163+
sink(amm1.keySet().iterator().next()); // $ hasValueFlow
164164

165165
list.add(taint());
166166
map2.put("key", list);
167167
AbstractMultivaluedMap<String, String> amm2 = new MyAbstractMultivaluedMap<String, String>(map2);
168-
sink(amm2.get("key").get(0)); // $ MISSING: hasValueFlow SPURIOUS: hasTaintFlow
168+
sink(amm2.get("key").get(0)); // $ hasValueFlow
169169
}
170170

171171
void testMultivaluedHashMap(Map<String, String> map1, Map<String, String> map2,

java/ql/test/library-tests/frameworks/JaxWs/JaxRsFlow.ql

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ class TaintFlowConf extends TaintTracking::Configuration {
1212
override predicate isSink(DataFlow::Node n) {
1313
exists(MethodAccess ma | ma.getMethod().hasName("sink") | n.asExpr() = ma.getAnArgument())
1414
}
15+
16+
override int fieldFlowBranchLimit() { result = 3 }
1517
}
1618

1719
class ValueFlowConf extends DataFlow::Configuration {
@@ -24,6 +26,8 @@ class ValueFlowConf extends DataFlow::Configuration {
2426
override predicate isSink(DataFlow::Node n) {
2527
exists(MethodAccess ma | ma.getMethod().hasName("sink") | n.asExpr() = ma.getAnArgument())
2628
}
29+
30+
override int fieldFlowBranchLimit() { result = 3 }
2731
}
2832

2933
class HasFlowTest extends InlineExpectationsTest {

0 commit comments

Comments
 (0)